SakuraDon's Blog

24
June
Docker内如何访问宿主机
不少人初时Docker时应该都遇到过这个问题,例如宿主机安装了mysql,但应用是Docker部署的,且需要连接mysql,那么就会遇到这个问题。一般人会选择直接使用公网ip或服务器组内私网ip的方式,实际中这样做的也更多,因为一台服务器上一般只会有一个服务,但也不排除个别情况,今天就更别情况讲一讲。Docker与宿主机的关系如上图,docker与宿主机之间会有一块网卡,通常名为docker0。在宿主机中使用ifconfig命令可以查看。宿主机的ip即为所有容器的网关,直接启动的容器都会在172.17.0.0/16这个网段上分配得到ip。因此在Docker内就可以通过宿主机docker0...
129
2020/06/24
02
June
Jenkins + Docker 构建自己的自动化部署
当你写完代码后,点下push按钮,不到一会你的线上应用就完成了更新并且运行了起来,这就是完美的工作流。准备流程这样的工作流也称自动化部署,具体的流程:开发人员推送代码到git仓库git仓库触发webhook请求build服务器build服务器执行构建任务build服务器打包docker并push到docker仓库build服务器登录生产服务器,停止旧服务,pull新镜像并运行要构建这么一套自动化部署,我们需要有:git仓库构建服务器docker镜像仓库生产服务器git仓库github,码云,或者私有的gitea、gitlab都是可行的。构建服务器构建过程通常会占用较多的服务器资源,如果服...
147
2020/06/02
09
Apr
JVM的类加载
生命周期一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期将会经历加载 (Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化 (Initialization)、使用(Using)和卸载(Unloading)七个阶段,其中验证、准备、解析三个部分统称为连接(Linking)。类加载加载通过一个类的全限定名来获取定义此类的二进制字节流。将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口(反射机...
133
2020/04/09
07
Apr
关于JVM Safepoint(安全点)的理解
首先从垃圾回收说起,当发生GC时,需要从方法区或本地变量表等地方获取GC Roots,但如果是单纯的遍历查找的话是非常亏的,GC发生时本身就停止了所有的线程,不能让这一操作耗费太多的时间。HotSpot为优化GC Roots的查找,采用了OopMap这一数据结构,一旦类加载动作完成的时候,HotSpot就会把对象内什么偏移量上是什么类型的数据计算出来,在即时编译过程中,也会在特定的位置记录下栈里和寄存器里哪些位置是引用。通过OopMap,JVM可以快速枚举出GC Roots,但是对象引用随时都在变,如何维护OopMap又是一个问题。HotSpot的做法就是设置Safepoint。在一个方...
196
2020/04/07
04
Apr
当Java对象处在偏向锁、轻量锁、重量级锁状态时,Mark Word值存储在哪?
参考当Java处在偏向锁、重量级锁状态时,hashcode值存储在哪?由上图可以看出来,HotSpot VM 为了优化空间,复用了对象头的一部分空间,不免产生一个疑问:当对象头处于锁定状态时,其对象哈希码、分代年龄、偏向模式等数据又存放在哪里了呢?偏向锁当一个对象已经计算过identity hash code,它就无法进入偏向锁状态当一个对象当前正处于偏向锁状态,并且需要计算其identity hash code的话,则它的偏向锁会被撤销,并且锁会膨胀为重量锁在偏向锁中,哈希码和线程ID复用同一块空间,HotSpot VM是以实际上只有很少对象会计算identity hash code为...
405
2020/04/04
29
Jan
angular 自定义组件使用ngModel
我们通常使用ngModel在模板上双向绑定数据,但是ngModel只作用于基本标签,我们自定义的组件没办法直接使用。如果我们要把input标签封装成一个组件,也是可以使用ngModel的,需要这个组件实现ControlValueAccessor接口,并且注入NG_VALUE_ACCESSOR。import { ControlValueAccessor } from '@angular/forms'; import { Component, OnInit, Input, forwardRef } from '@angular/core'; import { NG_VALUE_ACCESSO...
350
2020/01/29
28
Jan
laravel 查询数据库 数字全变为字符串型
这个问题遇到很多次了,数据库是是数字类型的字段,查出来后就变成字符串型了。直接说结论,php-mysqlnd扩展没装。CentOS下yum install php-mysqlnd即可,注意php版本。php-mysqlnd与php-mysql冲突,如果提示冲突,卸载掉php-mysql即可。
177
2020/01/28
14
Jan
Angular 路由跳转改变头部栏
这是一个很常见的需求,多个页面共用一个header,跳转不同的路由,header显示不同的内容,比如标题等。在React或者Vue中,我们常会使用状态管理来处理这类需求,例如vuex。在Angular中,因为有service这一概念,service是单例的,通过依赖注入到各个组件的,所以不需要状态管理。header.service.ts所以,我们需要创建一个service来管理header的状态。@Injectable({ providedIn: 'root' }) export class HeaderService { private title: string; pu...
230
2020/01/14
27
Dec
PS4使用sstap加速(不使用路由器)
目前大多数人使用的PS4加速方法,要么是网易UU这种,PS4和电脑在同一个WIFI下,电脑开启加速器,PS4手动更改IP。要么直接在路由器上做工作。无论怎么样都离不开一台路由器,要是没有路由器该怎么办。没有路由器也是可以加速的,只需要一台有两个网口的电脑(WIFI算一个网口),一根网线,和一个允许UDP的SSR节点。准备工作下载sstap,自行百度。测试节点直接添加ssr节点即可,添加完后点击⚡图标开始测试。v2ray的使用方法如果你的机场不是酸酸乳是v2ray的话也是可以的。首先在v2ray客户端中开启UDP,我的是客户端是v2rayN。或者直接更改客户端目录下的config.json...
3,782
2019/12/27
09
Dec
Windows uwp应用使用系统代理
UWP 是微软在 Windows 10 中引入的新概念,由于所有 UWP 应用均运行在被称为 App Container 的虚拟沙箱环境中,其安全性及纯净度远胜于传统的 EXE 应用。但 App Container 机制同时也阻止了网络流量发送到本机(即 loopback), 使大部分网络抓包调试工具无法对 UWP 应用进行流量分析。同样的,该机制也阻止了 UWP 应用访问 localhost,即使你在系统设置中启用了代理,也无法令 UWP 应用访问本地代理服务器。我主要用到的UWP应用也就邮件和office全家桶,邮件在收到google或者twitter等等的邮件的时候,邮件内的图片通...
386
2019/12/09