自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Ansible和Terraform区别

2021-05-29 22:48:23 1206

原创 AWS VPC Endpoint

从EC2 isntance访问aws public service, 比如下图的s3服务,最好的方式是通过私网访问,而非internet。如果要通过私网访问,需要在VPC上建立Endpoint。以下是建立Endpoint的步骤,看一看到有两个关键点,第一步,需要绑定要访问的公共服务,比如这里选的是其中一个s3服务。第二部,是需要更改路由,比如下图,加完路由之后,在路由表里边就能看到新加的路由了(图三),可以看到,目的地是s3的一个服务,经由刚才撞见的vpc endpoint。...

2021-05-29 21:47:55 2712

原创 AWS NAT gateway、NAT intance 以及与ELB的比较

NAT gateway 属于AWS managed service,支持高可用,支持最高可达10G的带宽。但是它只能处于一个AZ、一个subnet中。而ELB天生支持处于多个AZ,多个Subnet中,所以高可用角度看,ELB更高。另外, NAT gateway和NAT instance用于从private subnet产生的流量访问internet, 而ELB用于从Internet产生的访问流量,进入vpc的private 或者 public subnet。另外IGW(Internet gatewa

2021-05-29 20:12:39 1752

原创 三层web应用, 从本地迁移到云,需要考虑哪些事项?

2021-05-29 17:38:50 114

原创 传统三层网络架构的web服务与与现代微分段的网络设计

https://www.sweharris.org/post/2017-11-05-3tier-network/

2021-05-27 22:43:58 354 2

原创 AWS EC2 instance IP网络 - Private/Public/Elastic IP address

1. 登录到EC2 instance(也即EC2虚拟机)的操作系统里边,运行查看主机网卡的命令,比如'ifconfig' or 'ip address', 我们能看到的只有private IP address。2. Public IP address是由图二中的Internet gateway(IGW),为我们的instance动态分配的一个公网IP。IGW上有一个public IP pool,每次启动一个处于public subnet的虚机时,就会从public IP pool中选中一个可用的IP,然

2021-05-25 23:30:48 1971

原创 AWS EC2 instance 监控、告警

1. EC2 instance 'system status check' 表示instance是否可以通过网络访问,如果这个check fails,很有可能是该instance所在的物理主机或者是AWS的网络设备除了问题,需要AWS来处理,跟我们没有关系。2. 而'instance status check',如果没有通过,表示是我们虚拟机自己本身可能除了什么问题。3. 在虚拟机监控tab页,并不是默认cpu或者内存使用多高,或者虚拟机默认出什么问题,就会显式一个alarm。在AWS里边,ala.

2021-05-25 22:28:28 1691

原创 AWS EC2 实例 User Data

EC2 实例 User Data是一些命令,在虚机启动时,可以执行的。在Launch EC2 实例时可以指定,虚机启动后,可以进到虚机,像访问metadata那样,从虚机侧获取User Data。

2021-05-25 22:06:32 891

原创 从主机侧获取AWS EC2 实例的元数据

要获取EC2instance metadata, 比如实例的公网IP,所属的security group等,除了从AWS console上获取,还有更简单的方法,就是直接在instance的SSH console上获取。两种方式,一个是通过curl命令访问169.254.169.254这个URL,另外一种方式是下载一个脚本,辅以不同的参数获取。...

2021-05-25 21:58:26 896

原创 AWS DevOps/CI/CD

第一张图:展示CI概念第二张图:展示CI and CD 概念AWS codecommit相当于github, codebuild自动获取提交的新代码,并且编译、测试,并将测试结果返回给开发者。第三张图,展示用Beanstalk + codecommit实现code pipleline,非常简单。第四张图,更复杂一些,接近于真实DevOps场景,用到各种组件。一个具体的例子:...

2021-05-24 12:40:15 409

原创 AWS 自动部署

AWS CouldFormation: 通过JSON或者YAML文件部署BeanStalk:直接将要运行的应用上传到AWS, AWS为你创建server, load balancer, LB target, auto scalling group, security group等资源,并自动部署。

2021-05-24 12:18:20 312

原创 AWS DynamoDB 服务

在AWS console上创建一个DynamoDB时,不是去创建一个DB,而是去创建一个一个表,虽然它时no sql基于key value的,但是DyanmoDB使他看起来有点像关系型数据库的表,并且更有灵活性。

2021-05-24 11:38:00 247

原创 AWS EC2 实例Stop、Terminate、Hibernate的区别

1. Terminate:When an instance has been successfully terminated, the instance that was provisioned to you has been returned to the pool of cloud resources and you will never have access to that same physical machine ever again. Any RAMdata will be lost...

2021-05-24 10:47:36 2031

原创 AWS RDS services

支持多种关系型数据库。

2021-05-23 22:06:17 175

原创 AWS S3 (Simple Storage Service)

EC2 instance可以通过internet和私有连接两种方式访问。S3 也可以供其他任意internet客户端访问哦,不一定是只有AWS的主机才可以访问。

2021-05-23 21:48:52 472

原创 AWS EFS(Elastic File System)文件系统

AWS EFS文件系统实际上就是NFS文件系统,在使用时需要注意:- 创建完EFS,需要与一个Security group关联,决定哪些客户端主机可以访问 - 因为我们为每个instance 绑定一个security group,然后同样是这一个security group,我们把它应用于EFS,这样就限制了只有与该security group关联的主机才能访问,比如下面第二张图所示,在web-access的SG里边,定义了也给rule, 允许NFS协议,source是绑定名字是web-access这.

2021-05-23 21:40:32 1476

原创 AWS 从现有EC2 实例创建image,用于创建其他EC2 instance。

可以利用EBS的snapshot特性来做,具体步骤如下:- 首先为EC2的root volume创建一个snapshot,这个snapshot默认是保存在对象存储s3上- 在AWS 的EC2管理页面,进入EBS- snapshot页面,右键点击刚才创建的snapshot, 从弹出菜单选择“创建AMI",然后一个AMI就创建好了。- 重新创建一个新的EC2 instance,就可以看到刚才创建的AMI了。请思考:EC2 instance的root volume里边应该包含了很多主机的主机.

2021-05-23 21:03:41 963

原创 AWS EC2 虚拟机IP以及auto scalling实现

EC2 实例都是虚拟机,他的公网,私网IP,以及auto scalling实现方式,见下图。

2021-05-23 16:57:26 336

原创 AWS public service 和 private service

访问公共服务,需要经过internet。而私有服务,是处于跟你的EC@主机在同一个VPC里边。

2021-05-23 15:35:04 319

原创 AWS security group 和 network ACL

AWS security group 和 network ACL都定义了网络访问规则,用于控制哪些inbond和outbond traffic被允许或者被禁止。不同之处在于:AWS security group:应用于主机的流量访问控制。同一个security group可以跨不同的subnet甚至availability zone,但是不能跨VPC。(一个VPC可以跨多个Availability zone, 一个Availability zone就是一个数据中心,一个region下边可以有多个Ava.

2021-05-23 15:14:31 2712

原创 nacos做为配置中心使用方法

集中配置的优势:1. 在配置中心做一次更改,多个使用该配置的微服务上会生效。避免了在一个一个微服务上更改。2. 在Controller上使用@RefreshScope注解,还可以使配置动态生效。Controller里边的哪些使用@Value注解从属性文件中获取值的字段,可以动态读取最新的属性配置文件中的值,不需要重启微服务。这如果是在传统的spring应用中,需要修改配置文件,重新编译,打包,发布。这样做,大大简化了操作,而且不会断业务。如何使用Nacos做为配置中心统一配置管理:以下是以.

2021-05-21 11:39:39 628 2

原创 确定spring boot的版本后,如何确定Spring Cloud或者Spring Cloud Alibaba的版本,pom文件该如何配置?

在用spring boot开发微服务应用时,会使用到Spring Cloud或者Spring Cloud Alibaba组件,或者都用。这里的组件指的就是jar包。在确定spring boot的版本后,如何确定Spring Cloud或者Spring Cloud Alibaba的版本,pom文件该如何配置?比如我用的spring boot 版本是2.1.8(比较老),那我想使用Spring Cloud的open fein、gateway以及Spring Cloud Alibaba的nacos等组件.

2021-05-20 20:11:00 2140

原创 springboot 启动报错:create config service error!properties=NacosConfigProperties{serverAddr=‘null‘

之前写的应用,在启动时报如下错误:2021-05-20 16:28:59.504 ERROR 27576 --- [ main] c.a.cloud.nacos.NacosConfigProperties : create config service error!properties=NacosConfigProperties{serverAddr='null', encode='null', group='DEFAULT_GROUP', prefix='null', f.

2021-05-20 19:20:52 9418 1

原创 从普通类的角度理解java的enum类型,用自定义类来模拟实现enum类的功能

下边的测试代码参考<effective Java>, 总结如下:用enum关键字定义一个枚举类型,实际上也是定义一个类。只是这个类比较特殊,他有以下特点:1. 他定义了一组常量,而每个常量都是用enum定义的类(或其子类)的对象。2. 类中定义的常量就类似于我们自己定义的类的静态成员变量,只是其类型是他自己。3. 这个用enum定义的类可以有多个成员变量,但都必须是immutable的,也就是用final修饰。4. enum类的构造方法私有5. enum定以的类默认拥有p

2021-05-18 14:50:02 204 1

原创 Spring MVC 解析流程

2021-05-15 12:03:12 81

原创 从汇编语言角度看c程序

全局变量在数据段中,局部变量在栈中。c中的变量名在编译成汇编代码后都对应一个一个汇编的地址 - 偏移地址 + 段寄存器。也就是说c程序编译好后,变量的地址就是确定的 - 都是虚拟地址,MMU会转换成真正物理地址,不用担心不同程序地址冲突问题。所以从汇编的角度看,没有通过变量名来访问变量,都是通过内存地址或寄存器来访问变量,也就是说汇编基本全是指针访问……c的变量名都转化成了地址。这可以解释很多c的现象,比如柔性数组的地址为什么不占用结构体大小数组本身代表一个地址,那这个地址保存在哪里,有

2021-05-13 11:54:21 338

原创 c语言柔性数组

放在结构体最后边大小为0不占用结构体空间运行期分配空间时大小任意因为放在结构体最后,所以程序可以算出结构体截止地址,也就是最后一个数组的起始地址,然后由调用程序保证访问该数组时不越界。比如如果是字符串数组,由\0确保字符串结束,如果是其他类型数组,访问时,再额外传一个数组大小的参数下边文章写的比较好https://zhuanlan.zhihu.com/p/94855692...

2021-05-13 11:05:52 196

原创 Java 中什么时候需要重写hashCode()和equals()方法

在自定义类对象做为HashMap的key和HashSet的元素的时候,需要重写该类的hashCode()和equals()方法。原因如下:1. 重写equals方法很容易理解。在HashMap中,如果两个对象相等,那他们做为key值,通过调用HashMap的put()方法时,是会更新对应的value值的,是不会再增加一个新的key-value 键值对的。如果不重写equals()方法,默认的equals方法如果是继承自Object类,那定义如下: public boolean equal

2021-05-12 16:20:12 2915

原创 TCP(socket)状态转换时序图

说明:1. 这张图分三部分,粗线(表示主动发起连接或释放连接方)、虚线(被动方)、细线(同时发生,典型如客户端和服务器同时发送FIN,来断开连接)2. 连接进入TIME_WAIT状态后, 之所以要等2MSL(Linux系统中大概一分钟),是因为在发出ack后, 不确定对端是否有收到。如果没有收到,对端还会发送FIN,这时如果没有处于等待状态,而是直接进入CLOSED状态,那对端就会反复发送FIN。所以这个2MSL就是尽量确保对端有收到最后这个ack。3. 重要的三个状态: ESTABLISHE.

2021-05-09 15:01:02 1607 1

原创 c语言 利用sizeof计算各种类型数据长度

# cat size_test.c#include <stdio.h>int test(int arr[]);int main(void){ char * str1 = "hello"; char str2[] = "hello"; int arr[] = {1,2,3,4,5}; int * a = NULL; int b = 10; a = &b; printf("char * str1 length: %d\n",.

2021-05-06 11:38:34 1893

原创 c语言 利用sizeof计算各种类型数据长度

# cat size_test.c#include <stdio.h>int test(int arr[]);int main(void){ char * str1 = "hello"; char str2[] = "hello"; int arr[] = {1,2,3,4,5}; int * a = NULL; int b = 10; a = &b; printf("char * str1 length: %d\n",.

2021-05-06 11:36:32 1084

空空如也

空空如也

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

TA关注的人

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