12 珠宝壹佰.未闻

尚未进行身份认证

珠宝壹佰 首席架构师、技术总监。

等级
TA的排名 1w+

如何构建分布式系统的知识体系

对于开发工程师们来说,相信对于这种招聘要求的描述并不陌生:”熟悉分布式系统的设计和应用;熟悉分布式、缓存、消息、搜索等机制;能对分布式常用技术进行合理应用,解决问题”。 现在基本上大多数大、中型企业都会要求工程师们,除了要能在分布式环境中进行开发,还要了解其中的原理、机制,对于架构师来说还需要能够独立设计分布式系统。 分布式(计算机)系统的概念起源很早,目前已经基本涵盖了大多数系...

2018-09-02 21:57:48

分布式微服务架构的技术体系

花了一些时间对微服务架构体系的理论以及实践进行了总结。一部分课程已经整理完毕上线了。 课程链接:微服务架构的技术体系详解 课程简介: 微服务架构的技术体系、社区目前已经越来越成熟。在最初系统架构的搭建,或者当现有架构已到达瓶颈需要进行架构演进时,很多架构师、运维工程师会考虑是否需要搭建微服务架构体系。虽然很多文章都说微服务架构是复杂的、会带来很多分布式的问题,但只要我们了...

2018-07-10 20:55:19

JVM性能调优实践——G1 垃圾收集器分析、调优篇

前言关于G1 GC以及其他垃圾收集器的介绍可以参考前一篇JVM性能调优实践——G1 垃圾收集器介绍篇。了解了G1垃圾收集器的运行机制之后,就可以针对一些GC相关参数来调整内存分配以及运行策略。下文的调优主要针对G1垃圾收集器进行介绍,以及会分析一下G1 GC的日志格式。 G1 GC日志分析在执行具体的调优任务前,需要结合GC日志以及应用本身的特点。打印详细GClog,...

2018-06-04 13:58:15

基于Docker的微服务架构的企业级服务集群实践(五)—— 服务集群

服务集群的解决方案企业在实践使用Docker部署、运行微服务应用的时候,无论是一开始就布局微服务架构,或者从传统的单应用架构进行微服务化迁移。都需要能够处理更复杂的集群中的服务调度、编排、监控等问题。下面主要为大家介绍在服务集群下,如何更安全、高效得使用Docker,以及在架构设计上,需要考虑的方方面面。 负载均衡这里说的是集群中的负载均衡,如果是纯服务端API的

2018-05-31 09:53:39

基于Docker的微服务架构的企业级服务集群实践(四)—— 持续集成部署

微服务的持续集成部署前三篇主要介绍了微服务的服务发现、服务通信以及API Gateway。整体的微服务架构的模型初见。在实际的开发、测试以及生产环境中。使用Docker实现微服务,集群的网络环境会更加复杂。微服务架构本身就意味着需要对若干个容器服务进行治理,每个微服务都应可以独立部署、扩容、监控。本篇会继续探讨如何进行Docker微服务的持续集成部署。 镜像仓库用Docke

2018-05-31 09:53:28

基于Docker的微服务架构的企业级服务集群实践(三)——API Gateway的使用

使用API Gateway处理微服务请求转发、合并前面两篇Docker微服务的服务发现以及Docker微服务的服务间通信机制。主要介绍了如何解决微服务的服务发现和通信问题。 在微服务的架构体系中,为了减少服务间的耦合,在划分服务间的限界上下文的时候。会尽量减少微服务之间的 调用。在实际的需求场景中,往往要同时请求多个微服务资源。 解耦微服务的调用如下面一个场景,”用户订

2018-05-31 09:53:16

基于Docker的微服务架构的企业级服务集群实践(二)——服务间通信

服务间的IPC机制按照微服务的架构体系,解决了服务发现的问题之后。就需要选择合适的服务间通信的机制。如果是在Springboot应用中,使用基于Http协议的REST API是一种同步的解决方案。而且Restful风格的API可以使每个微服务应用更加趋于资源化,服务化的松耦合思想靠近。 如果每个微服务是使用DDD的思想的话,那么需要每个微服务尽量不使用同步的RPC机制。异步的基于消息的方式比

2018-05-31 09:53:00

基于Docker的微服务架构的企业级服务集群实践(一)——服务发现

前言基于Docker的容器技术是在15年的时候开始接触的。两年多的时间,作为一名Docker的DevOps,也见证了Docker的技术体系的快速发展。本文主要是结合在公司搭建的微服务架构的实践过程,做一个简单的总结。希望给在创业初期探索如何布局服务架构体系的DevOps,或者想初步了解企业级架构的同学们一些参考。(PS:本来想一口气写完,但发现一个模块就写了太久,后续会持续更新。

2018-05-31 09:52:48

JVM性能调优实践——G1 垃圾收集器介绍篇

前言前面两篇主要整理了性能测试的主要观察指标信息:性能测试篇,以及JVM性能调优的工具:JVM篇。这一篇先简单总结一下GC的种类,然后侧重总结下G1(Garbage-First)垃圾收集器的分代,结合open-jdk源码分析下重要算法如SATP,重要存储结构如CSet、RSet、TLAB、PLAB、CardTable等。最后会再梳理下G1GC的YoungGC,MixedGC收集过程。...

2018-05-30 17:34:59

JVM性能调优实践——JVM篇

前言在遇到实际性能问题时,除了关注系统性能指标。还要结合应用程序的系统的日志、堆栈信息、GClog、threaddump等数据进行问题分析和定位。关于性能指标分析可以参考前一篇JVM性能调优实践——性能指标分析。JVM的调优和故障处理可以使用JDK的几个常用命令工具。因为本文是基于Docker容器内部的Springboot服务。需要调整一下docker容器的启动参数,才可以使用jma...

2018-05-24 11:46:49

JVM性能调优实践——性能测试篇

前言本文主要基于工作中,关于性能调优的一些零散的信息整理。总结性的信息,以测试环境为例。系统信息如下: os: Linux 64位jdk:java version “1.8.0_121”, HotSpot(TM) 64-Bit Server VMdocker version: 17.04.0-ce第一篇先整理一些性能指标。第二篇整理一下jvm的性能问题分析,以及基于dock...

2018-05-15 17:11:56

Mysql InnoDB连接池占满问题

简单做一下线上问题排查的记录。使用的Mysql引擎是 InnoDB 5.7。 排查log通过排查应用日志(只有其中一台机器),可以马上定位到问题是数据库连接池满了。具体日志如下:2018-05-10 10:42:16.824 WARN 5 [xec-3303] SqlExceptionHelper SQL Error: 0, SQ...

2018-05-11 22:22:28

SpringData3.x以及SpringBoot2集成Elasticsearch5.x

说明关于如何在SpringBoot 1.x 的版本中集成Elasticsearch 2.x可以参考前文Elasticsearch实践(二)在Springboot微服务中集成搜索服务。2017年底,SpringData项目终于更新了Elasticsearch5.x版本的对应release版本:3.0.2.RELEASE。本文结合一个本地的示例,对于ES版本升级进行简单介绍。目前ES已经出到了6.

2018-01-26 11:14:50

基于Spring-statemachine的有限状态机(FSM)的介绍及示例

前言本文主要介绍一下状态机以及相关的一些概念。结合一个简单的订单状态流程,示例怎样在Springboot中集成Spring-statemachine。有限状态机(Finite-state machine)有限状态机(英语:finite-state machine,缩写:FSM),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。示例中以一个常见的“订单”的状态转移为例。

2017-11-26 20:31:19

Elasticsearch实践(二)在Springboot微服务中集成搜索服务

关于如何用Docker搭建Elasticsearch集群环境可以参考前一篇:Elasticsearch实践(一)用Docker搭建Elasticsearch集群。本文主要介绍,如果在Springboot体系中集成Elasticsearch服务。本文基于:Elasticsearch版本是2.2.4,Springboot版本是1.5.3.RELEASE,spring-data-elasticsearch

2017-11-23 14:32:57

Elasticsearch实践(一)用Docker搭建Elasticsearch集群

前言本系列文章主要是针对之前搭建以及实践基于springboot的搜索服务的总结。主要分为两部分: 1. 对于用Docker搭建分布式Elasticsearhc集群的一个介绍,以及一些实施中遇到问题的总结。(本篇) 2. 后面一篇会整理一下在基于Springboot的微服务体系中,如何更轻量级得使用Elasticsearhc以及一些复杂使用场景。搜索服务简述结合业务的场景,在目前的商品体系需要构

2017-11-18 10:21:24

基于docker-swarm搭建持续集成集群服务

前言本文只为自己搭建过程中的一些简单的记录。如果实践中有疑问,可以一起探讨。 为了能在本机(macOS)模拟集群环境,使用了vb和docker-machine。整体持续集成的几个机器设施如下: 服务节点:三个manager节点,一个worker节点。manager需要占用更多的资源,manager配置尽量高一些。swarm的manager节点的容错率是 (N-1)/2 。N是mana

2016-12-18 17:39:02

通过字节码分析JDK8中Lambda表达式编译及执行机制

关于Lambda字节码相关的文章,很早之前就想写了,线上产品的后端技术,能快速迭代,除了得益于整体微服架构之外,语言层面上,也是通过Java8的lambda表达式的运用以及rxJava响应式编程框架,使代码更加简洁易维护,调用方式更加便捷。本文将介绍JVM中的方法调用相关的字节码指令,重点解析JDK7(JSR-292)之后新增的invokedynamic指令给lambda表达式的动态

2016-04-23 13:07:01

基于Redis实现分布式锁-Redisson使用及源码分析

在分布式场景下,有很多种情况都需要实现最终一致性。在设计远程上下文的领域事件的时候,为了保证最终一致性,在通过领域事件进行通讯的方式中,可以共享存储(领域模型和消息的持久化数据源),或者做全局XA事务(两阶段提交,数据源可分开),也可以借助消息中间件(消费者处理需要能幂等)。通过Observer模式来发布领域事件可以提供很好的高并发性能,并且事件存储也能追溯更小粒度的事件数据,使各个应用系统拥有更好

2016-04-14 13:40:26

领域服务、领域事件

综合前两篇总结,这篇对领域服务和领域事件做一个梳理。先说明下本文的领域服务和应用服务。SOA服务,或者应用间的RPC调用,Restful接口,或者通过消息中间件进行系统间的交互的,都可以归类为应用服务。相较之下,领域服务不一定涉及到远程调用或者重量级事务操作。所以上下文集成也就涉及到,怎样的方式去划分限界上下文,怎么样设计才能尽量减少应用服务的耦合,以及应用服务对于本地模型的防腐。领域服务概念借用《

2016-03-12 19:19:09

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!