自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 RabbitMQ 总体介绍

RabbitMQ 总体介绍本文大纲RabbitMQ 历史 RabbitMQ 应用场景 RabbitMQ 系统架构 RabbitMQ 基本概念 RabbitMQ 细节阐明历史-从开始到现在RabbitMQ是一个Erlang开发的AMQP(Advanced Message Queuing Protocol )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 Cobar)的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是

2021-09-07 14:47:35 124

原创 10 | 微服务治理的手段有哪些?

上一期我给你讲述了服务追踪的基本原理,有了分布式服务追踪系统,在服务出现问题的时候,我们就可以定位服务哪里出现了问题。一般单体应用改造成微服务架构后,还会增加哪些问题呢?又该如何应对呢?前面我讲到单体应用改造为微服务架构后,服务调用由本地调用变成远程调用,服务消费者 A 需要通过注册中心去查询服务提供者 B 的地址,然后发起调用,这个看似简单的过程就可能会遇到下面几种情况,比如: 注册中心宕机; 服务提供者 B 有节点宕机; 服务消费者 A 和注册中心之间的网络不通;

2021-08-17 15:35:07 209

原创 09 | 如何追踪微服务调用?

在微服务架构下,由于进行了服务拆分,一次请求往往需要涉及多个服务,每个服务可能是由不同的团队开发,使用了不同的编程语言,还有可能部署在不同的机器上,分布在不同的数据中心。下面这张图描述了用户访问微博首页,一次请求所涉及的服务(这张图仅作为示意,实际上可能远远比这张图还要复杂),你可以想象如果这次请求失败了,要想查清楚到底是哪个应用导致,会是多么复杂的一件事情。如果有一个系统,可以跟踪记录一次用户请求都发起了哪些调用,经过哪些服务处理,并且记录每一次调用所涉及的服务的详细信息,这时候如果发生调用失

2021-08-17 15:34:37 209

原创 08 | 如何监控微服务调用?

与单体应用相比,在微服务架构下,一次用户调用会因为服务化拆分后,变成多个不同服务之间的相互调用,这也就需要对拆分后的每个服务都监控起来。在讲述如何监控微服务调用前,首先你要搞清楚三个问题:监控的对象是什么?具体监控哪些指标?从哪些维度进行监控?下面就从这三个问题开始,一起来看看如何监控微服务调用。监控对象既然要监控,那么要监控哪些对象呢?根据我的实践经验,对于微服务系统来说,监控对象可以分为四个层次,由上到下可归纳为: 用户端监控。通常是指业务直接对用户提供的功能的监控。以微博首页 Fee

2021-08-17 15:30:32 215

原创 07 | 如何实现RPC远程服务调用?

专栏上一期我讲过,要完成一次服务调用,首先要解决的问题是服务消费者如何得到服务提供者的地址,其中注册中心扮演了关键角色,服务提供者把自己的地址登记到注册中心,服务消费者就可以查询注册中心得到服务提供者的地址,可以说注册中心犹如海上的一座灯塔,为服务消费者指引了前行的方向。有了服务提供者的地址后,服务消费者就可以向这个地址发起请求了,但这时候也产生了一个新的问题。你知道,在单体应用时,一次服务调用发生在同一台机器上的同一个进程内部,也就是说调用发生在本机内部,因此也被叫作本地方法调用。在进行服务化拆分之后

2021-08-17 15:29:59 184

原创 06 | 如何注册和发现服务?

专栏上一期,我给你介绍了服务发布和引用常用的三种方式:RESTful API、XML 配置以及 IDL 文件。假设你已经使用其中一种方式发布了一个服务,并且已经在一台机器上部署了服务,那我想问你个问题,如果我想调用这个服务,我该如何知道你部署的这台机器的地址呢?这个问题就跟我想去吃肯德基一样,我可以去谷歌地图上搜索肯德基,然后谷歌地图会返回所有的肯德基店面的地址,于是我选择距离最近的一家去吃。这里面谷歌地图就扮演了一个类似注册中心的角色,收录了所有肯德基店面的地址。同理,我想知道这台服务器的地址,那

2021-08-17 15:29:20 101

原创 05 | 如何发布和引用服务?

从这期开始,我将陆续给你讲解微服务各个基本组件的原理和实现方式。今天我要与你分享的第一个组件是服务发布和引用。我在前面说过,想要构建微服务,首先要解决的问题是,服务提供者如何发布一个服务,服务消费者如何引用这个服务。具体来说,就是这个服务的接口名是什么?调用这个服务需要传递哪些参数?接口的返回值是什么类型?以及一些其他接口描述信息。我前面说过,最常见的服务发布和引用的方式有三种: RESTful API XML 配置 IDL 文件 下面我就结合具体的实例,逐个讲解每一种

2021-08-17 15:27:58 76

原创 04 | 初探微服务架构

上一期我给你讲了什么时候应该进行服务化,以及服务化拆分的两种方式即横向拆分和纵向拆分,最后还提到了引入微服务架构需要解决的问题。我想你一定很好奇微服务架构到底是什么样子的,接下来我们一起走进微服务架构,来看看它的各个组成部分。下面这张图是我根据自己的经验,绘制的微服务架构的模块图,在具体介绍之前先来看下一次正常的服务调用的流程。首先服务提供者(就是提供服务的一方)按照一定格式的服务描述,向注册中心注册服务,声明自己能够提供哪些服务以及服务的地址是什么,完成服务发布。接下来服务消费者(就是

2021-08-17 15:16:49 84

原创 设计模式:三大类、23种设计模式总览

设计模式一、创建型模式(Creational Pattern)—— 6创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。简单工厂模式(Simple Factory) 工厂方法模式(Factory Method) 抽象工厂模式(Abstract Factory) 建造者模式(Builder) 单例模式(Singleton) 原型模式Prototype)二、结构型模式(Structural Patter...

2021-08-17 15:14:27 253

原创 03 | 从单体应用走向服务化

专栏上一期,我给你讲述了什么是微服务,以及微服务架构的由来。简单回顾一下,微服务就是将庞杂臃肿的单体应用拆分成细粒度的服务,独立部署,并交给各个中小团队来负责开发、测试、上线和运维整个生命周期。那么到底什么时候应该拆分单体应用?拆分单体应用有哪些标准可依呢?为了解答这两个问题,今天我将通过具体案例来阐述,希望你能够学会单体应用拆分成微服务的正确姿势。什么时候进行服务化拆分?从我所经历过的多个项目来看,项目第一阶段的主要目标是快速开发和验证想法,证明产品思路是否可行。这个阶段功能设计一般不会太

2021-08-17 15:11:57 57

原创 02 _ 到底什么是微服务?

从谷歌的搜索指数来看,微服务的热度在进入 2017 年后突然爆发,国内各大会议和论坛的相关讨论也如雨后春笋般层出不穷,各大一线互联网公司也纷纷将这一技术引入并在实际业务中落地。然而据我所知,国内不少中小规模的技术团队对微服务的概念都不甚了解,对该不该引入微服务也不置可否。还有一些技术团队,没有考虑实际业务场景,只是为了追求技术热点,盲目引入微服务,但又缺乏相应的技术掌控能力,最后影响了业务的稳定性。对于该不该引入微服务,以及微服务体系需要哪些技术,目前并没有适合中小团队的架构实践落地的指引。因此

2021-08-17 15:10:05 89

原创 01-开篇词 _ 微服务,从放弃到入门

从 2012 年加入微博到现在,我一直在做微博首页信息流相关的业务研发,几乎亲历了微博后端架构的每一次重大升级。不仅参与了微博后端架构从大的单体应用迁移到微服务架构的改造;还作为主要负责人之一,主导了微服务架构在公司多个业务线的推广和落地。所以谈到将微服务落地,我有很多实战干货想和你分享。不得不说,微服务是当下非常热门的话题。我平时工作之外和圈子里的朋友们交流,提到微服务等新技术,他们先是兴奋,后又无奈。兴奋的是他们看到了新技术带来的便利,无奈的是团队规模和能力又反过来制约了他们采用新技术的步伐。而他们

2021-08-17 14:59:12 104

原创 JAVA PDF转(切图)jpg or png ,图片大小的转换

JAVA PDF转(切图)jpg or png ,图片大小的转换1.pom.xml maven导入jar包2.直接演示代码1.pom.xml maven导入jar包<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</a...

2020-04-24 10:25:11 1196 2

原创 wget: 无法解析主机地址/ failed: Name or service not known.

Resolving mirror.bit.edu.cn (mirror.bit.edu.cn)... failed: Name or service not known.wget: unable to resolve host address ‘mirror.bit.edu.cn’ 1.vi /etc/sysconfig/network-scripts/ifcfg-eth0...

2019-11-18 22:40:49 5599

原创 Ubuntu Vi 编辑出现字母 及 系统时间修改

1.ubuntu中的VI编辑器按I进入文本编辑模式,按上下左右键是换行显示ABCD字母执行 : export TERM=linux2.修改系统时间sudo date -s MM/DD/YY //修改日期sudo date -s hh:mm:ss //修改时间sudo hwclock --systohc //非常重要,如果没有这一步的话,后面时间还是不准或者命令:hwclock -w...

2018-06-20 17:12:31 269

翻译 Xshell 上传与下载文件

Xshell5是一个强大的SSH工具,现在已经有个人免费版本,任何一位用户均可从官方下载并使用,如果您想将Windows桌面上的文件拷贝到远程的Linux系统,我们通常可以使用winscp工具,但是有了Xshell5这个强大的工具,完全就不需要winscp了。将Windows桌面上的文件拷贝到远程Linux只需要Xshell已经SSH连接到Linux服务器,直接将windows下的任意文件拽拖到当...

2018-05-28 17:39:38 4867

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除