Java开发全栈(当前正在更新中)

java开发

一、前端:Html、Css、JS

(一)JS类库框架

1、JavaScript

  1. 标签
<script>
document.write("<h1>JS写入代码位置</h1>");
</script>
<script src="myScript.js"></script>
  1. 显示数据

    window.alert():弹出警告框
    document.write():写入HTML 文档
    innerHTML:写入 HTML 元素
    console.log():写入浏览器控制台

  2. 操作 HTML 元素
    document.getElementById(id)
    document.getElementById(“id”).innerHTML = “修改。”;

  3. 字面量
    数字(Number):123e5
    字符串(String):“John Doe” ‘John Doe’
    表达式:5 + 6
    数组(Array):[40, 100, 1, 5, 25, 10]
    对象(Object):{firstName:“John”, lastName:“Doe”, age:50, eyeColor:“blue”}
    函数(Function):function myFunction(a, b) { return a * b;}

  4. 变量:存储数据值
    关键字 var定义变量

  5. 操作符

2、 JQuery.JS

3、Angular.JS(模型, scope作用域,controller,依赖注入,MVVM)

2、 前端MVC

1. Vue.JS(MVVM)

1 导入VUE:
<script src="https://unpkg.com/vue@next"></script>
2 DIV绑定选择器(数据绑定):
<div id="idxz1" class="demo" >
    {
   
   { message }}
</div>

<div id="hello-vue" class="demo">
  {
   
   { message }}
  <span v-once><br>不会改变: {
   
   { message }}</span>
</div>

<div id="example1" class="demo">
    <p>使用双大括号的文本插值: {
   
   { rawHtml }}</p>
    <p>使用 v-html 指令: <span v-html="rawHtml"></span></p>
</div>
3 JS更改数据信息:
<script>
const hanshu = {
      
      
  data() {
      
      
    return {
      
      
      message: '居中的VUE展示网页'
    }
  }
}
Vue.createApp(hanshu).mount('#idxz1')
</script>

<script>
const HelloVueApp = {
      
      
  data() {
      
      
    return {
      
      
      message: 'Hello Vue!!'
    }
  }
}
Vue.createApp(HelloVueApp).mount('#hello-vue')
</script>

<script>
const RenderHtmlApp = {
      
      
  data() {
      
      
    return {
      
      
      rawHtml: '<span style="color: red">这里会显示红色!</span>'
    }
  }
}
Vue.createApp(RenderHtmlApp).mount('#example1')
</script>
4 语法语义动作:
  1. 构造函数 Vue :创建根实例(类似Java)
    Var vm=new Vue({})
  2. 属性:JS
    el: 获取执行vue的dom元素-初始化范围
    data: 存储数据
    methods: 方法、函数、 return 返回函数值——重新调用
    computed: 计算属性——依赖缓存
    watch:监听属性——响应数据变化
  3. 输出:DIV
    { { }} :文本插值——输出对象属性和函数返回值
  4. 实例属性:前缀(非必须)定义自己私有属性
    $ 用于公共实例属性:暴露给用户的特殊实例属性
  5. 前缀:
    v-model:双向数据绑定(表单控件input、select、textarea、checkbox、radio)
    v-on:监听
    v-if:条件判断
    v-else:与v-if连用
    v-bind:响应更新 HTML 属性——设置样式属性
    v-show:展示元素
    v-for:循环/迭代绑定数据到数组
    v-html: 输出 html 代码
    $ 实例属性:暴露给用户的特殊实例属性
  6. 缩写:
    v-bind:——:
    v-on:——@
5 VUE目录
  1. src开发目录:
    assets:图片等
    components:组件文件、可不用
    App.vue:项目入口文件、可将组件写这里而不用 components 目录
    main.js: 项目核心文件
  2. static 静态资源目录、如图片、字体等
  3. index.html 首页入口文件、添加一些 meta 信息或统计代码

2. React.JS (创建自定义标签,根据id注入标签)

3. Node.JS(服务器端)

3、UI框架(Html/Css/JS组合)

1. Bootstrap(html/CSS/JS)

  1. 网格系统(Grid System):最多12列
    行: .container class
  2. 媒体查询

二、后端:Java、Tomcat(Web+Servlet+JSP)

1、后端语言:Java

2、后端框架:Spring、MVC、Boot、Cloud

三、数据库

(一)Sql结构化查询语句(适用MySql)

1、数据库操作

-- 连接数据库:
	mysql -u root -p

-- 展示所有数据库:
	SHOW DATABASES;

-- 创建数据库:
	CREATE DATABASE shujuku

-- 选择数据库:
	USE shujuku;

2、表操作

-- 展示所有数据表:
	SHOW TABLES;

-- 创建数据表:
	CREATE TABLE `biao` (
		 `id` int(4) NOT NULL AUTO_INCREMENT,
		 `name` varchar(25) NOT NULL,
			PRIMARY KEY (`id`)
			)
			
	CREATE TABLE IF NOT EXISTS `biao00`(
		 `id` INT UNSIGNED AUTO_INCREMENT,
		 `name` VARCHAR(100) NOT NULL,
		 `sex` VARCHAR(40) NOT NULL,
		 `age` DATE,
		 PRIMARY KEY ( `id` )
	)ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- 	约束:
-- 		非空约束(NOT NULL):
				CREATE TABLE biao0 (
				id int NOT NULL,
				name	varchar(255) NOT NULL,
				FName varchar(255) NOT NULL,
				Age int
				);

-- 		唯一性约束(UNIQUE):
				CREATE TABLE biao1(
				Id int NOT NULL,
				LastName varchar(255) NOT NULL,
				FirstName varchar(255),
				Address varchar(255),
				City varchar(255),
				UNIQUE (Id)
				)
				
-- 		主键约束(Primary  Key):
				CREATE TABLE biao2(
				P_Id int NOT NULL,
				LastName varchar(255) NOT NULL,
				FirstName varchar(255),
				Address varchar(255),
				City varchar(255),
				PRIMARY KEY (P_Id)
				)

-- 		主键约束取别名(2个列名组成CONSTRAINT)(CONSTRAINT zhujianmingming PRIMARY KEY (id,name)):
				CREATE TABLE biao3(
				P_Id int NOT NULL,
				LastName varchar(255) NOT NULL,
				FirstName varchar(255),
				Address varchar(255),
				City varchar(255),
				CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
				)
		
				CREATE TABLE biao4(
				O_Id int NOT NULL,
				OrderNo int NOT NULL,
				P_Id int,
				PRIMARY KEY (O_Id),
				FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
				)
				
-- 		唯一约束的键取别名(2个列名组成 CONSTRAINT):
				CREATE TABLE biao5(
				O_Id int NOT NULL,
				OrderNo int NOT NULL,
				P_Id int,
				PRIMARY KEY (O_Id),
				CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
				REFERENCES Persons(P_Id)
				)

-- 		限制列中值的范围约束(单列CHECK):
				CREATE TABLE biao6(
				P_Id int NOT NULL,
				LastName varchar(255) NOT NULL,
				FirstName varchar(255),
				Address varchar(255),
				City varchar(255),
				CHECK (P_Id>0)
				)
				
-- 		多列范围别名约束(CONSTRAINT):
				CREATE TABLE biao7
				(
				P_Id int NOT NULL,
				LastName varchar(255) NOT NULL,
				FirstName varchar(255),
				Address varchar(255),
				City varchar(255),
				CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
				)

-- 		默认值约束(DEFAULT) :
				CREATE TABLE biao8(
						P_Id int NOT NULL,
						LastName varchar(255) NOT NULL,
						FirstName varchar(255),
						Address varchar(255),
						City varchar(255) DEFAULT 'Sandnes'
				)
				
-- 		插入函数默认值(函数):
				CREATE TABLE biao9
				(
						O_Id int NOT NULL,
						OrderNo int NOT NULL,
						P_Id int,
						OrderDate date DEFAULT GETDATE()
				)
自动创建主键字段值(AUTO INCREMENT 开始值为 1):
CREATE TABLE biao10(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (ID)
)

创建索引(CREATE INDEX)CREATE INDEX suoyinming ON biao (id);
		CREATE INDEX suoyinming ON biao (id,name,sex);

唯一单独索引/不能重复(CREATE UNIQUE INDEX):CREATE UNIQUE INDEX suoyinming ON biao (id);

修改(ALTER):

撤销所有约束(存在问题自己调试):
	ALTER TABLE biao DROP INDEX id;
	ALTER TABLE biao DROP PRIMARY KEY;
	ALTER TABLE biao DROP CONSTRAINT bieming;
	ALTER TABLE biao DROP FOREIGN KEY bieming;
	ALTER TABLE biao DROP CHECK bieming;
	ALTER TABLE biao ALTER id DROP DEFAULT;
	ALTER TABLE biao DROP INDEX suoyinming;
	ALTER TABLE biao DROP COLUMN lie;
	
修改表(存在问题自己调试):
	ALTER TABLE biao MODIFY  sex  int NOT NULL;
	ALTER TABLE biao MODIFY  sex  int NULL;
	ALTER TABLE biao ADD UNIQUE (id);
	ALTER TABLE biao ADD PRIMARY KEY (id);
	ALTER TABLE biao ADD CONSTRAINT bieming PRIMARY KEY (id,name);
	ALTER TABLE biao ADD FOREIGN KEY (id) REFERENCES biao(id);
	外键(FOREIGN KEY):ALTER TABLE biao ADD CONSTRAINT bieming FOREIGN KEY (id) REFERENCES biao(id);
	检查列数据范围内约束(检查表中字段值有效性CHECK)ALTER TABLE biao ADD CHECK (id>0);
	ALTER TABLE biao ADD CONSTRAINT bieming CHECK (id>0 AND name='任明');
	修改列默认值:ALTER TABLE biao ALTER id SET DEFAULT 1314;
	添加列(包含类型):ALTER TABLE biao ADD lie varchar(255);
	修改列(包含类型):ALTER TABLE biao MODIFY COLUMN sex int(255);
	修改主键自增起始值:ALTER TABLE biao AUTO_INCREMENT=100;

选取查询:SELECT    DISTINCT	 id ,name        FROM 	biao         WHERE  	 id 	LIKE 3       AND	 id <4      OR 	id=4    AND(id<5 OR id=2);

	排序:
  		升序: SELECT 	DISTINCT		 id,name        FROM	 biao    	 ORDER BY	 id;	
  		降序:SELECT	DISTINCT		 id,name       FROM 	biao     	 ORDER BY	 id       		Desc;
  		多列排序:SELECT 	DISTINCT		 id,name 	FROM	 biao 	ORDER BY		 id,name 		Desc;

	限制返回记录数目(条件限制):SELECT   *  FROM 	biao		WHERE 	name <=5;
			SELECT	*  FROM 	biao	LIMIT	 5;

	模糊选取查询(like):SELECT * FROM biao WHERE id LIKE '1%';
			SELECT * FROM biao WHERE id LIKE '%1';
			SELECT * FROM biao WHERE id LIKE '%1%';
			SELECT * FROM biao WHERE name LIKE '老%';
			SELECT * FROM biao WHERE name LIKE '%婆';
			SELECT * FROM biao WHERE name LIKE '%任明%';
	通配符:
		SELECT * FROM biao WHERE id LIKE '1%';
		SELECT * FROM biao WHERE id LIKE '_5';
		SELECT * FROM biao WHERE id REGEXP '^[35]';
		SELECT * FROM biao WHERE id REGEXP '^[3-5]';
		SELECT * FROM biao WHERE id REGEXP '^[^3-5]';

	in单个条件设置:SELECT * FROM biao WHERE id IN (1,8,9,99);
		SELECT * FROM biao WHERE id NOT BETWEEN 10 AND 99;

	区间范围条件:SELECT * FROM biao WHERE id BETWEEN 510 AND 99;

	区间中的单个:SELECT * FROM biao WHERE (id BETWEEN 510 AND 99) AND id IN (510,99);
		SELECT * FROM biao WHERE (id BETWEEN 510 AND 99) AND id NOT IN (514,511);

	别名:SELECT name AS n, id AS i FROM biao;
		SELECT w.name, w.id, w.sex FROM biao AS w WHERE w.sex=6 AND w.id="6";
	合并(CONCAT列)并创建别名:SELECT name, CONCAT(  id, ', ', sex) AS bieming FROM biao;

	多表连接(JOIN/INNER JOINJOIN 相同)1表:SELECT biao.id, biao.name, biao1.id1, biao1.name1 		FROM 		biao 	INNER JOIN 	biao1	 ON 	biao.id=biao1.id1;
		内连接(匹配):SELECT biao.id, biao.name, biao1.id1, biao1.name1 		FROM 		biao 	INNER JOIN 	biao1	 ON 	biao.id=biao1.id1;
			SELECT biao.id, biao.name, biao1.id1, biao1.name1		 FROM 		biao	 INNER JOIN 	biao1	 ON	 biao.id=biao1.id1		 ORDER BY	 biao.id ;	
			SELECT biao.id, biao.name, biao1.id1, biao1.name1 		FROM		 biao 	INNER JOIN	 biao1	 ON	 biao.id=biao1.id1		 ORDER BY	 biao.id DESC;
		左连接(匹配):SELECT biao.id, biao.name, biao1.id1, biao1.name1 FROM biao LEFT JOIN biao1 ON biao.id=biao1.id1 ORDER BY biao.id DESC;
		右连接(匹配):SELECT biao.id, biao.name, biao1.id1, biao1.name1 FROM biao RIGHT JOIN biao1 ON biao.id=biao1.id1 ORDER BY biao.id DESC;

	合并查询结果集(UNION):
		部分合并:SELECT id FROM biao UNION SELECT name1 FROM biao1 ORDER BY id;
		全部合并:SELECT id FROM biao UNION ALL SELECT name1 FROM biao1 ORDER BY id;
		条件合并:SELECT id FROM biao WHERE id='99' UNION ALL SELECT name1 FROM biao1 WHERE id1='13' ORDER BY id;




插入:	INSERT INTO 	biao (name,id)	VALUES	('任明',991314);	




修改更新:UPDATE		 biao 		SET	 id=991314 ,name='任明',sex=1 	WHERE 	sex=1;


删:
	删除(逐行一条条删除记录):DELETE FROM 	biao ;
	删除(删除列id为1的一行): DELETE FROM 	biao	 WHERE	id=1;
	删除表:DROP TABLE biao;
	删除数据库:DROP DATABASE shujuku;
	清空(删除原表创建新表(删除数据不删表)):TRUNCATE TABLE	 biao;

复制表到新表(CREATE  AS  ):CREATE TABLE biao5 AS SELECT * FROM biao;

复制表到旧表(INSERT  SELECT):INSERT INTO biao3 SELECT * FROM biao;
				INSERT INTO biao3 (id,name)  SELECT id ,name FROM biao;
				INSERT INTO biao3 (id,name)  SELECT id ,name FROM biao WHERE id=1;

视图( SQL 语句结果集的可视化表(虚拟逻辑表(本身不含数据(就是select语句保存在数据字典))))(Views):
	基表:创建构成视图的实际的表叫做基表
	查看创建视图的有无权限(有Y、无N):SELECT权限、CREATE VIEW权限
		SELECT * FROM mysql.user WHERE user='root';
		SELECT * FROM mysql.user WHERE user='remli';
		SELECT Select_priv,Create_view_priv FROM mysql.user WHERE user='root';
	创建视图:CREATE OR REPLACE VIEW biaoshitu AS SELECT id,name FROM biao;
	创建视图同时指定属性清单:CREATE OR REPLACE VIEW biaoshitu (idV,nameV) AS SELECT id,name FROM biao;
	修改视图:ALTER VIEW biaoshitu AS  SELECT id,name FROM biao where id  in (select id from biao);

函数:
	Date 函数:
		日期(Dates):
		SELECT * FROM biao WHERE Dates='2008-11-11'
		SELECT * FROM biao WHERE Dates='2008-11-11 00:00:00'
	返回数值列平均值(AVG(列名))SELECT AVG(id) FROM biao;
		SELECT AVG(id) AS '表id平均值' FROM biao;
		SELECT id, sex FROM biao WHERE id > (SELECT AVG(id) FROM biao);
	返回匹配指定条件的行数COUNT()SELECT COUNT(id) FROM biao;
		SELECT COUNT(*) FROM biao;
		SELECT COUNT(*) AS '行数' FROM biao;
		SELECT COUNT(DISTINCT id) AS '不同行数' FROM biao;
		SELECT COUNT(id) AS 'id=520的行数' FROM biao WHERE id=520;
	返回指定的列中第一个记录的值(通过limit实现):
		SELECT id FROM biao ORDER BY id ASC LIMIT 1;
	返回指定的列中最后一个记录的值(通过limit实现):
		SELECT id FROM biao ORDER BY id DESC LIMIT 1;
	返回指定列的最大值(MAX(列名) )SELECT MAX(id) AS 'id列的最大值' FROM biao;
	返回指定列的最小值(MIN(列名)):
		SELECT min(id) AS 'id列的最小值' FROM biao;
	返回数值列的总和SUM(列名)SELECT sum(id) AS 'id列的总和' FROM biao;
	结合聚合函数、根据一个或多个列对结果集进行分组(GROUP BY):
		SELECT id, SUM(biao.sex) AS '总和进行分组' FROM biao GROUP BY id;
		SELECT biao.name,COUNT(biao1.id1) AS '多表分组连接返回行数' FROM biao1 LEFT JOIN biao ON biao1.id1=biao.id GROUP BY biao.name;
	筛选分组后的各组数据进行聚合同时可加条件(HAVING):
	           -- 非版本mysql5.7版本问题导致which is not functionally dependent on columns in GROUP BY clause错误
	          SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); 
		SELECT biao.id, biao.name, SUM(biao1.id1) AS '表id1列总和' FROM (biao1 INNER JOIN biao ON biao1.id1=biao.id) GROUP BY biao.name HAVING SUM(biao1.id1) > 200;
		SELECT biao.id, biao.name, SUM(biao1.id1) AS '表id1列总和' FROM biao1 INNER JOIN biao ON biao1.id1=biao.id WHERE biao.id < 200  GROUP BY biao.name HAVING SUM(biao1.id1) > 200;
	判断查询子句是否有记录(EXISTS 运算符):
		SELECT biao.name, biao.id FROM biao WHERE EXISTS (SELECT id1 FROM biao1 WHERE biao.id = biao1.id1 AND id1 > 200);
		SELECT biao.name, biao.id FROM biao WHERE NOT EXISTS (SELECT id1 FROM biao1 WHERE biao.id = biao1.id1 AND id1 > 200);
	字段的值转换为大写( UCASE() )SELECT UCASE(name) AS '转换大写字母', sex FROM biao;
	字段的值转换为小写( LCASE()  )SELECT LCASE(name) AS '转换小写字母', sex FROM biao;
	从文本字段中提取字符(MID() ):
		SELECT MID(name,1,4) AS '提取字符4个字符' FROM biao ;
		SELECT MID(name,1,4) AS '提取字符4个字符' FROM biao WHERE id=11;
	返回文本字段中值的长度(LEN()):
		SELECT name, LENGTH(name) AS '名字长度(包含类型长度)' FROM biao;
	数值字段舍入为指定的小数位数(ROUND() ):
		SELECT ROUND(id) FROM biao;		
		SELECT ROUND(1.298, 1) AS '四舍五入保留小数1位小数';
		SELECT ROUND(1.298, 0) AS '四舍五入保留小数0位小数(整数)';
		SELECT ROUND(-1.23) AS '默认保留整数';
	返回当前系统的日期和时间NOW()SELECT id, name, Now() AS '当前时间' FROM biao;
	对字段的显示进行格式化(FORMAT() ):
		SELECT id, name, DATE_FORMAT(Now(),'%Y-%m-%d') AS '时间按年月日格式显示' FROM biao;

遗漏的未知不适用数据(NULL占位符):
	SELECT id,name,sex FROM biao WHERE id IS NULL;
	SELECT id,name,sex FROM biao WHERE id IS NOT NULL;
	SELECT sex *(id+name) FROM biao WHERE id IS NULL;
	SELECT sex *(id+name) FROM biao WHERE id IS NOT NULL;
	SELECT sex *(id+IFNULL(name,0)) FROM biao;
	SELECT sex *(id+COALESCE(name,0)) FROM biao;


TRANSACTION事务处理(BEGIN, ROLLBACK, COMMIT):
	start transaction;-- 开启事务
	begin;  # 开始事务
	commit; # 提交事务——结束事务
	rollback;   # 回滚——结束事务

存储过程/控制/缓存(记住必须分步执行/绝对不能复制到一起):
第一步:
DROP PROCEDURE  IF EXISTS  biao_cuncu;
delimiter $$  
CREATE PROCEDURE biao_cuncu(IN id int)
BEGIN
SELECT id;  
SET id=2;
SELECT id; 
END
第二步:
DELIMITER ;
第三步:
SET @id=11;  
CALL biao_cuncu(@id);  
SELECT @id AS '传入的值';  

	#创建存储过程:
		delimiter $$  #将语句的结束符号从分号;临时改为两个$$(可以是自定义)
		CREATE PROCEDURE biao_cuncu(OUT id int)
		BEGIN
		SELECT id;  
		SET id=2;
		SELECT id; 
		END
	#退出分号屏蔽:
		DELIMITER ;  #将语句的结束符号恢复为分号
	##设置传参调用:
		SET @id=11;  
		CALL biao_cuncu(@id);  
		
	#查看存储过程
		show procedure status;

	#删除已有存储过程
		DROP PROCEDURE  IF EXISTS  biao_cuncu;

循环插入(存储过程):-- 插入到99条数据
 		-- 删除存储过程
		DROP PROCEDURE  IF EXISTS  biaofunction;

		-- 分隔符
		DELIMITER ;; 
		-- 声明存储过程函数
		CREATE PROCEDURE biaofunction() 
		BEGIN 

		DECLARE i INT DEFAULT 1;

		WHILE i<=99
		DO 
		insert into biao(id,name) values (i,'任明'); 
		SET i=i+1; 
		END WHILE ; 
		commit; 

		END;; 

		CALL biaofunction() ;


SQL 注入(永远不要信任用户的输入):


分页(LIMIT X,Y):
	-- 第一个参数(起始行):指定第一个返回记录行的偏移量
	-- 第二个参数(行区间):指定返回记录行的最大数目
	SELECT * FROM biao LIMIT 5,10;  #检索记录行 6-15行——从第6条记录行开始算,取出10条数据
	SELECT * FROM biao LIMIT 5;     #检索前 5 个记录行
	SELECT * FROM biao LIMIT 0,5;    #检索前 5 个记录行
	SELECT * FROM biao limit 5,-1;	#取出第6条记录行以后的所有数据

2、数据库:Mysql、Oracle、DB2、Redis、monogodb

3、数据库框架:Mybatis、

四、分布式(消息中间件):Kafka、RabbitMQ

(一)RPC分布式服务框架:Dubbo(阿里巴巴)

1、远程服务调用分布式框架:Dubbo

1.节点角色
1 Provider: 暴露服务的服务提供方
2 Consumer: 调用远程服务的服务消费方
3 Registry: 服务注册与发现的注册中心
4 Monitor: 统计服务的调用次调和调用时间的监控中心
5 Container: 服务运行容器
2.服务
3.配置
4.调用关系

2、服务注册中心(管理员):Zookeeper

1.文件系统:树状数据结构
2.监听通知机制
1 Watcher 监听机制:一次性
  1. 客户端注册 Watcher:getData、exists、getChildren。
  2. 服务器处理 Watcher
  3. 客户端回调 Watcher 客户端
3.节点
1 机器节点
2 数据节点:znode
3.心跳检测
4.角色
1 领导者(leader)
2 学习者(learner)
3 跟随者(follower)
4 Observer
5.命令

(二)SpringCloud分布式微服务框架

Spring Cloud 构建于 Spring Boot 之上、微服务系统架构的一站式解决方案
服务发现注册 、配置中心 、消息总线 、负载均衡 、断路器 、数据监控

1、服务发现框架(注册中心):Eureka、Zookeeper、Consul

2、负载均衡: Ribbon、Nignx

负载均衡算法
进程内负载均衡器

3、服务调用映射:Open Feign

4、熔断器(断路器):Hystrix

服务降级熔断器

5、网关路由:Zuul

6、统一配置中心:Config

7、消息总线:Bus

(三)RPC分布式服务框架:HSF

Provider——服务提供者
Consumer——服务消费者
ConfigServer——配置服务器
Diamond——持久化配置中心
addressServer——地址服务
元数据存储

五、部署:Git(版本)、Docker(镜像)、SVN(版本)

猜你喜欢

转载自blog.csdn.net/qq_25482375/article/details/123685687