docker 和 k8s 调研总结

一、 docker简介 环境配置 软件开发最大的麻烦事之一,就是环境配置。用户计算机的环境都不相同,你怎么知道自家的软件,能在那些机器跑起来? 用户必须保证两件事:操作系统的设置,各种库和组件的安装。只有它们都正确,软件才能运行。举例来说,安装一个 Python 应用,计算机必须有 Python 引 ... »

俯瞰 Java 服务端开发

原文首发于 github ,欢迎 star 。 Java 服务端开发是一个非常宽广的领域,要概括其全貌,即使是几本书也讲不完,该文将会提到许多的技术及工具,但不会深入去讲解,旨在以一个俯瞰的视角去探寻这片领域。 目录 目录 框架 Spring Boot Vert.x 网络 五层协议 HTTP 协议 ... »

.Net微服务实战之CI/CD

系列文章 .Net微服务实战之技术选型篇 .Net微服务实战之技术架构分层篇 .Net微服务实战之DevOps篇 .Net微服务实战之负载均衡(上) 相关源码:https://github.com/SkyChenSky/Sikiro 地基 在软件工程不少的思想、概念来源于建筑工程,大家也喜欢把开发软 ... »

高德智慧景区随身听播放器框架设计与实现

一、背景 “远看山有色,近听水‘有’声”,景区语音导览是智慧景区重点业务之一,以用地图可以边走边听景区各景点的语音介绍为主要诉求,实现高德智慧景区地图不仅可以看,还可以听,从而使用户交互体验得到跨越式提高。 我们想要让“技术有温度”,让讲解更加有感情和内涵,最好可以通过讲解构造一个“UGC景区讲解生 ... »

.Net微服务实战之负载均衡(上)

系列文章 .Net微服务实战之技术选型篇 .Net微服务实战之技术架构分层篇 .Net微服务实战之DevOps篇 相关源码:https://github.com/SkyChenSky/Sikiro PS:最近开始在找工作,如果在广州地区需要技术管理岗的(.Net架构师、技术经理)可以随时联系我,微信 ... »

架构设计 | 分布式事务①概念简介和基础理论

本文源码:GitHub·点这里 || GitEE·点这里 一、分布式事务简介 1、转账经典案例 跨地区和机构的转账的业务在实际生活中非常常见,基础流程如下: 账户01通过一系列服务和支付的流程,把钱转入账户02,在这一过程中,如果账户01出现出账成功,但是账户02没有入账,这就导致数据不一致,违反了 ... »

SaaS 系统架构,Spring Boot 动态数据源实现!

这段时候在准备从零开始做一套SaaS系统,之前的经验都是开发单数据库系统并没有接触过SaaS系统,所以接到这个任务的时候也有也些头疼,不过办法部比困难多,难得的机会。 在网上找了很多关于SaaS的资料,看完后使我受益匪浅,写文章之前也一直在关注SaaS系统的开发,通过几天的探索也有一些方向。 多租户 ... »

一个老牌程序员说:做Java开发,怎么可以不会这 20 种类库和 API

​ 在正常的工作中,除了一些比较偏门技术问题之外,其实很多的编程业务都是大同小异,这也是为什么都练就了一身成功的cv大法,但是呢,cv大法好,也需要一本好的cv秘籍。这就是我们在开发的过程中常用的一些类库,这些类库在日常的开发工作中帮助我们解决不少的麻烦。 本文总结了日志、JSON解析、单测、XML ... »

.Net微服务实战之DevOps篇

技术只是基础 该系列的两篇文章《.Net微服务实战之技术选型篇》和《.Net微服务实战之技术架构分层篇》都是以技术角度出发描述微服务架构的实施。 如果技术选型篇叙述的是工具,那么架构分层篇讲的就是技巧,而本篇要讨论的就是原则。一直以来我会给身边向我探讨问题的人灌输一种理念,没有什么技术银弹,因为我们 ... »

session共享同步redis策略

关于session共享的文章,网上很多,可是最关键的点我没有看到一篇。也就是session对象到底是怎么同步到redis的。 spring-session底层原理到底是怎么样的,我没有去校验,欢迎各位大咖评论和指正 ... »

.Net Core实战之基于角色的访问控制的设计

前言 上个月,我写了两篇微服务的文章:《.Net微服务实战之技术架构分层篇》与《.Net微服务实战之技术选型篇》,微服务系列原有三篇,当我憋第三篇的内容时候一直没有灵感,因此先打算放一放。 本篇文章与源码原本打算实在去年的时候完成并发布的,然而我一直忙于公司项目的微服务的实施,所以该篇文章一拖再拖。 ... »

别让HR再质问我:我费劲招的人,你用缓存问废了,不能简单点?

概念 缓存穿透 在高并发下,查询一个不存在的值时,缓存不会被命中,导致大量请求直接落到数据库上,如活动系统里面查询一个不存在的活动。 缓存击穿 在高并发下,对一个特定的值进行查询,但是这个时候缓存正好过期了,缓存没有命中,导致大量请求直接落到数据库上,如活动系统里面查询活动信息,但是在活动进行过程中 ... »

什么是架构?为什么做架构?架构师需要做什么?

好比我们要定义一个概念: 1. 首先定义边界和范畴,我们近似的称为系统 2. 再次根据自身认知把指定范畴划分为指定的抽象,也即组成系统的元素 3. 最后我们定义元素之前的联系和系统(整体)元素(局部)的规范和约束 架构的定义 恰如其分的软件架构 开发者无法平添智慧,随着业务的开展和复杂度的提高,开发 ... »

【整理】JVM知识点大梳理

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体 ... »

最简短的话,写给身边的程序员朋友吧

之前一段时间断更了一段时间,是因为在之前的一个深夜,我被一个电话吵醒,来电的是一个快三十岁的程序员,也是我很好的朋友,电话那头传来的是哭泣声,我没有开口,接通电话之后,我就坐在床上,听他哭,等他开口,女朋友在旁边说:大晚上的,干啥呢?梦游啊,哄睡女朋友后,我就在客厅和他聊天,第一次有那种场景,一个快 ... »

01 . 中小企业到亿级流量架构演进过程

目前中小企业架构设计存在哪些问题? # 1. 通病: 企业组织管理混乱 # 原因: 没有完善的企业组织架构(分工和责任不明确) # 2. 部门协同差劲 # 原因: 企业没有规范的管理流程,部门之间沟通机会少,企业文化融合氛围不浓等等造成的. # 3. 组织效率低 # 原因: 多方协同出现了问题 1 ... »

百万年薪架构师一文整理RabbitMQ、ActiveMQ、RocketMQ、Kafka

一般来说,大型应用通常会被拆分成多个子系统,这些子系统可能会部署在多台机器上,也可能只是一台机器的多个进程中,这样的应用就是分布式应用。在讨论分布式应用时,很多初学者会把它和集群这个概念搞混,因为从部署形态上看,它们都是多台机器或多个进程部署, 而且都是为了实现一个业务功能。这里有一个简单的区分标准 ... »