YML

Dubbo-go 源码笔记(一)Server 端开启服务过程

南楼画角 提交于 2021-01-07 05:00:45
简介: 随着微服务架构的流行,许多高性能 rpc 框架应运而生,由阿里开源的 dubbo 框架 go 语言版本的 dubbo-go 也成为了众多开发者不错的选择。本文将介绍 dubbo-go 框架的基本使用方法,以及从 export 调用链的角度进行 server 端源码导读,希望能引导读者进一步认识这款框架。 作者 | 李志信 dubbo-go 源码 : https://github.com/apache/dubbo-go 导读 :随着微服务架构的流行,许多高性能 rpc 框架应运而生,由阿里开源的 dubbo 框架 go 语言版本的 dubbo-go 也成为了众多开发者不错的选择。本文将介绍 dubbo-go 框架的基本使用方法,以及从 export 调用链的角度进行 server 端源码导读,希望能引导读者进一步认识这款框架。下周将发表本文的姊妹篇:《从 client 端源码导读 dubbo-go 框架》。 当拿到一款框架之后,一种不错的源码阅读方式大致如下:从运行最基础的 helloworld demo 源码开始 —> 再查看配置文件 —> 开启各种依赖服务(比如zk、consul) —> 开启服务端 —> 再到通过 client 调用服务端 —> 打印完整请求日志和回包。调用成功之后,再根据框架的设计模型,从配置文件解析开始,自顶向下递阅读整个框架的调用栈。 对于 C/S

三、SpringBoot-application.properties配置文件和application.yml配置文件

我只是一个虾纸丫 提交于 2021-01-06 10:43:35
其实SpringBoot的配置文件有.properties和.yml两种形式,两种配置文件的效果类似,只不过是格式不同而已,孩儿们可以根据下面这几种张截图,通过对比端口号的配置,以及连接SQLServer数据库的配置的书写格式来自己体会两者的不同,选择自己心仪的一款使用哦: 一、.properties和.yml的区别 注意!!!: 1、当properties和yml同时存在时,properties的优先级会比yml高(记忆技巧:这个世界上,谁长,谁NB) 2、两种文件都是用#注释 3、yml的优点在于可以省去一下重复代码 4、在properties文件里面的 “ .” 连接在yml文件里面全部换成 ":" 进行连接,并且每一级之间必须换行,在第二级开始应该进行一个Tab键的缩进,如果是同级的就不需要进行缩进 5、在yml文件里面如果是需要进行赋值那么必须是要在 ":" 后面进行一个空格键的缩进 6、在yml文件里面所有的配置,相同级别只能出现一次,比如我们使用了spring这个级别,那么我们在后边进行spring级别的配置的时候就必须在这个地方进行,不能在写一个spring级别 二、多个properties文件的切换: 在实际开发过程中我们可能需要在测试环境,以及生产环境,或者其他环境下进行切换,那么我们如果每次切换的时候都是一个个的配置参数进行修改,那还不得累死。。。

Ansible

我怕爱的太早我们不能终老 提交于 2021-01-06 09:21:03
目录 Ansible - 安装介绍 Ansible -常用模块介绍 Ansbile - Playbook 使用 Ansible - Roles 使用示例 参考 bilibili马哥视频 运维派教程 介绍 ansible 是一种自动化运维工具,基于 Python 开发,可实现批量系统配置、批量程序部署、批量运行命令等功能。 环境信息 # hostnamectl Static hostname: localhost.localdomain Icon name: computer-vm Chassis: vm Machine ID: 752d91f949a840fa9f2ed0b2ca54d8ad Boot ID: 81088a1ae25a46279b7746e8c9e0a091 Virtualization: vmware Operating System: CentOS Linux 7 ( Core ) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-957.el7.x86_64 Architecture: x86-64 安装 可直接通过 yum 安装 [ root@localhost ~ ] # yum search ansible 校验 [ root@localhost ~ ] # ansible -

SpringBoot配置中@ConfigurationProperties和@Value的区别

隐身守侯 提交于 2021-01-06 06:46:59
基本特征 @ConfigurationProperties 与@Bean结合为属性赋值 与@PropertySource(只能用于properties文件)结合读取指定文件 与@Validation结合,支持JSR303进行配置文件值的校验,如@NotNull@Email等 @Value 为单个属性赋值 支持属性上的SpEL表达式 两者比较 @ConfigurationProperties @Value 功能 批量注入配置文件中的属性 一个个指定 松散绑定 支持 不支持 SpEL 不支持 支持 JSR303数据校验 支持 不支持 复杂类型封装 支持 不支持 我们用简单的例子来说明一下。 假设在application.properties文件中这样写道: 1 student.name= zhangsan 2 student.age= 25 3 student.class= mba 4 student.squad-leader= false 5 student.mail= zhangsan@gmail.com 6 7 student.maps.k1= aaa 8 student.maps.k2= bbb 9 student.maps.k3= ccc 10 11 student.lists= a,b,c 12 13 student.score.english= 95 14 student

SpringBoot | @Value 和 @ConfigurationProperties 的区别

懵懂的女人 提交于 2021-01-06 06:06:25
微信公众号:一个优秀的废人。如有问题,请后台留言,反正我也不会听。 前言 最近有跳槽的想法,所以故意复习了下 SpringBoot 的相关知识,复习得比较细。其中有些,我感觉是以前忽略掉的东西,比如 @Value 和 @ConfigurationProperties 的区别 。 如何使用 定义两个对象,一个学生对象,对应着一个老师对象,代码如下: @ConfigurationProperties 学生类 @Component @ConfigurationProperties (prefix = "student" ) // 指定配置文件中的 student 属性与这个 bean绑定 public class Student { private String firstName; private String lastName; private Integer age; private String gender; private String city; private Teacher teacher; private List<String> hobbys; private Map<String,Integer> scores; //注意,为了测试必须重写 toString 和 get,set 方法 } 老师类 public class Teacher { private

开源堡垒机jumpserver的安装

做~自己de王妃 提交于 2021-01-06 02:01:43
开源跳板机 jumpserver 安装 简介 Jumpserver 是全球首款完全开源的堡垒机 , 使用 GNU GPL v2.0 开源协议 , 是符合 4A 的专业运维审计系统 Jumpserver 使用 Python / Django 进行开发 , 遵循 Web 2.0 规范 , 配备了业界领先的 Web Terminal 解决方案 , 交互界面美观、用户体验好。 Jumpserver 采纳分布式架构 , 支持多机房跨区域部署 , 中心节点提供 API, 各机房部署登录节点 , 可横向扩展、无并发访问限制。 Jumpserver 现已支持管理 SSH 、 Telnet 、 RDP 、 VNC 协议资产。 官网 http://www.jumpserver.org/ github https://github.com/jumpserver/jumpserver 官方安装 http://docs.jumpserver.org/zh/docs/setup_by_centos.html 特点: 完全开源, GPL 授权 Python 编写,容易再次开发 实现了跳板机基本功能,认证、授权、审计 集成了 Ansible ,批量命令等 支持 WebTerminal Bootstrap 编写,界面美观 自动收集硬件信息 录像回放 命令搜索 实时监控 批量上传下载 环境配置 服务器环境 CPU:

ElasticSearch的安装和使用

流过昼夜 提交于 2021-01-05 03:01:23
一、传统版安装 1.下载es: https://www.elastic.co/downloads/past-releases/elasticsearch-5-6-8 2.运行:下载后解压,进入到bin目录,执行:elasticsearch。浏览器输入http://localhost:9200/测试是否启动 3.安装head插件(用于可视化操作es) 1)下载head插件: https://github.com/mobz/elasticsearch-head 2)解压到任意目录,但是要和elasticsearch的安装目录区别开 3)安装node js ,安装cnpm 4)全局安装grunt 。Grunt是基于Node.js的项目构建工具。它可以自动运行你所 设定的任务 npm install -g grunt-cli 5)安装依赖 cnpm install 6)进入elasticsearch-head目录启动head grunt server 7)浏览器输入http://localhost:9100/测试head插件是否成功安装 8)在页面上方文本框输入es的地址(端口9200),点击连接按钮出现跨域问题 4.在es目录下的config/elasticsearch.yml添加两行使es能被head等插件跨域访问。改配置后重启es: http.cors.enabled: true

yaml文件 *.yml 写法简介

≡放荡痞女 提交于 2021-01-04 07:02:23
YAML(Yet Another Markup Language)(发音 /ˈjæməl/ ) 一种基于Unicode容易阅读,容易和脚本语言交互的,用来表达资料序列的编程语言。 适应场景 脚本语言:由于实现简单,解析成本很低,YAML 特别适合在脚本语言中使用 序列化: YAML是由宿主语言数据类型直转,的比较适合做序列化。 配置文件:写 YAML 要比写 XML 快得多(无需关注标签或引号),并且比 INI 文档功能更强。由于兼容性问题,不同语言间的数据流转建议不要用 YAML。 语言优点 YAML易于人们阅读。 YAML数据在编程语言之间是可移植的。 YAML匹配敏捷语言的本机数据结构。 YAML具有一致的模型来支持通用工具。 YAML支持单程处理。 YAML具有表现力和可扩展性。 YAML易于实现和使用。 YAML 语法 使用空格 Space 缩进表示分层,不同层次之间的缩进可以使用不同的空格数目,但是同层元素一定左对齐,即前面空格数目相同(不能使用 Tab,各个系统 Tab对应的 Space 数目可能不同,导致层次混乱) ‘#’表示注释,只能单行注释,从#开始处到行尾 破折号后面跟一个空格(a dash and space)表示列表 用冒号和空格表示键值对 key: value 简单数据(scalars,标量数据)可以不使用引号括起来,包括字符串数据

Spring Cloud Config 加密和解密

感情迁移 提交于 2021-01-03 21:35:49
要使用加密和解密功能,您需要在JVM中安装全面的JCE(默认情况下不存在)。您可以从Oracle下载“Java加密扩展(JCE)无限强度管理策略文件”,并按照安装说明(实际上将JRE lib / security目录中的2个策略文件替换为您下载的文件)。 如果远程属性源包含加密内容(以 {cipher} 开头的值),则在通过HTTP发送到客户端之前,它们将被解密。这种设置的主要优点是,当它们“静止”时,属性值不必是纯文本(例如在git仓库中)。如果值无法解密,则从属性源中删除该值,并添加具有相同键的附加属性,但以“无效”作为前缀。和“不适用”的值(通常为“<n / a>”)。这主要是为了防止密码被用作密码并意外泄漏。 如果要为config客户端应用程序设置远程配置存储库,可能会包含一个 application.yml ,例如: application.yml spring: datasource: username: dbuser password: '{cipher}FKSAJDFGYOS8F7GLHAKERGFHLSAJ' properties文件中的加密值不能用引号括起来,否则不会解密该值: application.properties spring.datasource.username: dbuser spring.datasource.password: {cipher

Java项目笔记之秒杀功能

ぃ、小莉子 提交于 2021-01-03 12:01:34
不点蓝字,我们哪来故事? 秒杀功能 参数校验 在任何时候,当你要处理一个应用程序的业务逻辑,数据校验是你必须要考虑和面对的事情。应用程序必须通过某种手段来确保输入进来的数据从语义上来讲是正确的。在通常的情况下,应用程序是分层的,不同的层由不同的开发人员来完成。很多时候同样的数据验证逻辑会出现在不同的层,这样就会导致代码冗余和一些管理的问题,比如说语义的一致性等。为了避免这样的情况发生,最好是将验证逻辑与相应的域模型进行绑定。 用 JSR 303 – Bean Validation 规范 : Bean Validation 中的 constraint 表 1. Bean Validation 中内置的 constraint Constraint 详细信息 @Null 被注释的元素必须为 null @NotNull 被注释的元素必须不为 null @AssertTrue 被注释的元素必须为 true @AssertFalse 被注释的元素必须为 false @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 @DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @DecimalMax(value) 被注释的元素必须是一个数字