- 博客(17)
- 收藏
- 关注
原创 ElasticSearch
ElasticSearch简介什么是ElasticSearchEFlaticsearch,简称为es,es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。ElasticSearch的使用案例 2013年初,GitHub抛弃了Solr,采
2022-05-29 16:25:46 382
原创 消息中间件RabbitMQ
MQ概述MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。
2022-05-23 00:25:57 508
原创 第七章 Spring Cloud Sleuth链路追踪
7.1 链路追踪简介7.1.1 为什么需要链路追踪微服务架构是⼀个分布式架构,它按业务划分服务单元,⼀个分布式系统往往有很多个服务单元。 由于服务单元数量众多,业务的复杂性,如果出现了错误和异常,很难去定位。主要体现在,⼀个请求可能需要调⽤很多个服务,⽽内部服务的调⽤复杂性,决定了问题难以定位。所以微服务架构中,必须实现分布式链路追踪,去跟进⼀个请求到底有哪些服务参与,参与的顺序⼜是怎样的,从⽽达到每个请求的步骤清晰可⻅,出了问题,很快定位。举个例⼦,在微服务系统...
2022-03-23 21:05:08 2693
原创 第六章 Spring Cloud Config配置管理
6.1 Spring Cloud Config 简介配置⽂件想必⼤家都不陌⽣。在Spring Boot项⽬中,默认会提供⼀个application.properties或者 application.yml⽂件,我们可以把⼀些全局性的配置或者需要动态维护的配置写⼊改⽂件,不如数据库连接,功能开关,限流阈值,服务地址等。为了解决不同环境下服务连接配置等信息的差异,Spring Boot还提供了基于spring.profiles.active={profile}的机制来实现不同的环境的切换。...
2022-03-23 20:57:44 1102
原创 第五章 微服务网关Spring Cloud Gateway
5.1 微服务网关简介第三章我们介绍了通过Spring Cloud LoadBalancer实现了微服务之间的调⽤和负载均衡,以及使⽤Spring Cloud OpenFeign声明式调⽤,那我们的各种微服务⼜要如何提供给外部应⽤调⽤呢?当然,因为是REST API接⼝,外部客户端直接调⽤各个微服务是没有问题的。但出于种种原因,这并不是⼀个好的选择。让客户端直接与各个微服务通讯,会存在以下⼏个问题。 客户端会多次请求不同的微服务,增加了客户端的复杂性。 ...
2022-03-23 20:48:09 749
原创 第四章 微服务容错Resilience4j
4.1 微服务容错简介在⾼并发访问下,⽐如天猫双11,流量持续不断的涌⼊,服务之间的相互调⽤频率突然增加,引发系统负载过⾼,这时系统所依赖的服务的稳定性对系统的影响⾮常⼤,⽽且还有很多不确定因素引起雪崩,如⽹络连接中断,服务宕机等。⼀般微服务容错组件提供了限流、隔离、降级、熔断等⼿段,可以有效保护我们的微服务系统。4.1.1 隔离微服务系统A调⽤B,⽽B调⽤C,这时如果C出现故障,则此时调⽤B的⼤量线程资源阻塞,慢慢的B的线程数量持续增加直到CPU耗尽到100...
2022-03-23 18:23:03 3119
原创 第三章 微服务-服务调用
3.1 RestTemplate简介RestTemplate是Spring Resources中⼀个访问第三⽅RESTful API接⼝的⽹络请求框架。RestTemplate的设计原则和其他的Spring Template(例如JdbcTemplate)类似,都是为了执⾏复杂任务提供了⼀个具有默认⾏为的简单⽅法。RestTemplate是⽤来消费REST服务的,所以RestTemplate的主要⽅法都与REST的HTTP协议的⼀些⽅法紧密相连,例...
2022-03-23 18:13:01 853
原创 第二章 服务的注册和发现Eureka
"Eureka"来源于古希腊词汇,意为“发现了”。在软件领域,Eureka是Netflix在线影⽚公司开源 的⼀个服务注册和发现组件,和其他的Netflix公司的服务组件(例如负载均衡,熔断器,⽹关等) ⼀起,被Spring Cloud社区整合为Spring Cloud Netflix模块。2.1 Eureka简介和Zookeeper类似,Eureka是⼀个⽤于服务注册和发现的组件,最开始主要应⽤与亚⻢逊公司的云 计算服务平台AWS,Eureka分为Eureka Se...
2022-03-23 17:59:21 555
原创 第一章 微服务简介
从架构发展的⻆度来描述技术的发展过程,根据不同阶段所⾯临的问题来推动架构的演变,从而更好地理解微服务的本质以及它所带来的的好处。1.1 从单体架构到微服务架构的演进1.1.1 单体架构通过我们之前的学习,我们开发⼀个⼀个Web项⽬,可以使⽤Spring、SpringMVC、Mybatis等技术。整个系统的架构⾮常简单,使⽤Spring+SpringMVC+Mybatis构建⼀个基础⼯程、MySQL数据库作为持久化存储,在这个⼯程中创建不同的...
2022-03-23 17:48:18 1884
原创 数据库操作
目录一、SQL语言1. 概述2.SQL语句分类3.DDL操作数据库4.DDL操作表5.DML操作6.DCL二、DQL数据查询查询关键字:SELECT1.简单查询2.条件查询3.模糊查询4.字段控制查询5.排序6.聚合函数7.分组查询8.LIMIT三、数据完整性1.数据库的完整性2.实体完整性3.域完整性4.引用完整性四、多表查询1.多表的关系2.多表查询五、扩展1.多行新增2.多表更新3.多表
2022-03-17 16:29:55 358
原创 分布式RPC框架Apache Dubbo
1.软件架构的演进过程软件架构的发展经历了由单体架构、垂直架构、SOA架构到微服务架构的演进过程,下面我们分别了解一下这几个架构。1.1 单体架构架构说明:全部功能集中在一个项目内(All in one)。架构优点:架构简单,前期开发成本低、开发周期短,适合小型项目。架构缺点:全部功能集成在一个工程中,对于大型项目不易开发、扩展和维护。技术栈受限,只能使用一种语言开发。系统性能扩展只能通过扩展集群节点,成本高。1.2 垂直架构架构说明:按照业务进行切割
2022-03-09 21:56:05 99
原创 Java集合
集合一、类集设置的目的对象数组有那些问题?普通的对象数组的最大问题在于数组中的元素个数是固定的,不能动态的扩充大小,所以最早的时候可以通过链表实现一个动态对象数组。但是这样做毕竟太复杂了,所以在 Java 中为了方便用户操作各个数据结构,所以引入了类集的概念,有时候就可以把类集称为 java 对数据结构的实现。类集中最大的几个操作接口:Collection、Map、Iterator,这三个接口为以后要使用的最重点的接口。所有的类集操作的接口或类都在 java.util 包中。二、数据
2022-03-07 16:17:24 126
原创 Java面向对象
目录面向对象基础概述三大思想三大特征类和对象类的定义格式属性与方法对象的创建与使用特殊情况set和get方法创建对象内存分析栈堆方法区PC寄存器构造方法(构造器)定义的格式:构造方法设计方法的重载构造方法的重载匿名对象编程规范面向对象进阶封装 privatethis关键字static包包介绍包的使用规则import权限修饰符代码块 {}main方法面向对象高级继承
2022-03-05 00:19:08 222
原创 JSON 解析
简介JSON: JavaScript Object Notation JS对象简谱,是一种轻量级的数据交换格式。优点:程序员解析起来比XML简单 机器解析起来比XML快 传输时体积小,传输速度快JSON对象格式 { "name":"金苹果", "info":"种苹果" }一个对象,由一个大括号表示。括号中描述对象的属性。通过键值对来描述对象的属性(可以理解为,大括号中,包含的是一个个的键值对...
2021-08-29 21:34:48 94
原创 Java基础知识学习
Java介绍詹姆斯.高斯林(James Gosling)带领开发的一款能够跨平台的开发语言版本:J2ME:微型版,应用于移动、无线及有限资源的环境J2SE(基础):标准版,应用于桌面环境J2EE:企业版,应用于基于Java的应用服务器Java的特性:一种纯面向对象的编程语言,与平台无关(跨平台)的语言,吸收了C/C++语言的优点,有较高的安全性(自动回收垃圾,强制类型检查,取消指针)。Java开发之路(学习之路)JavaSE -> MySQL ->
2021-08-09 17:27:20 135
原创 不使用第三个变量交换两个整形的值
//不使用第三个变量交换两个整形的值//方法一:使用算术运算符int a = 8;int b = 5;a = a + b; //a=13b = a - b; //b=8a = a - b; //a=5//方法二:使用逻辑运算符^(异),计算二进制下的a、b的值int a = 8; //1000int b = 5; //0101a = a ^ b; //1101b = a ^ b; //1000a = a ^ b; //0101...
2021-08-09 17:14:56 79
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人