首页
学习
活动
专区
工具
TVP
发布

后端开发随笔

后端开发,数据库,中间件,DevOps,分布式架构,Docker
专栏作者
291
文章
411061
阅读量
35
订阅数
Docker实践之09-高级网络配置
当Docker启动时,会自动在主机上创建一个名为docker0虚拟网桥,实际上是Linux的一个bridge,可以理解为一个软件交换机,它会在挂载到它的网口之间进行转发。 同时,Docker随机分配一个本地未占用的私有网段中的一个地址给docker0接口。比如典型的172.17.0.1,掩码为255.255.0.0。此后启动的容器内的网口也会自动分配一个同一网段(172.17.0.0/16)的地址。 当创建一个Docker容器的时候,同时会创建了一对veth pair接口(当数据包发送到一个接口时,另外一个接口也可以收到相同的数据包)。这对接口一端在容器内,即一端在本地并被挂载到docker0网桥,名称以veth开头(例如vethb305ad8)。通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。 Docker创建了在主机和所有容器之间一个虚拟共享网络。
编程随笔
2022-09-16
1.1K0
Docker实践之07-使用网络
默认情况下,如果在启动容器时不进行端口映射,外部是无法访问到容器内部的应用的,如:
编程随笔
2022-09-08
3870
导致Redis访问慢的常见操作
导致Redis访问慢的原因通常有2个方面: 第一,Redis本身性能出现了瓶颈,如:内存使用率过高,并发过大等 第二,存在大KEY,或者客户端访问命令使用不当引起的阻塞
编程随笔
2022-04-29
1.2K0
常见Python问题及解决办法
如果Python文件中存在中文注释,在运行时报错“SyntaxError: Non-ASCII character '\xe7' in file”。 解决办法: 在文件的开始的地方写上# -*- coding: utf-8 -*-即可,明确指定文件编码类型。
编程随笔
2021-11-24
7460
非常好用的VS Code插件
如果希望在VS Code编辑器中打开文件的时候自动展开对应的目录结构,需要开启“Auto Reveal”。 具体设置步骤: 1.打开设置 2.搜索“Auto Reveal”,勾选中“Auto Reveal”就好了。
编程随笔
2021-11-24
3540
一个Git Commit Message模板
一个统一的commit消息模板可以约束团队成员使用一致的方式提交变更信息,这样也方便集成工具进行合规检查。 通常来讲,commit信息应该包含如下内容:
编程随笔
2021-11-11
1.1K0
HttpClient在多线程环境下踩坑总结
在多线程环境下使用HttpClient组件对某个HTTP服务发起请求,运行一段时间之后发现客户端主机CPU利用率呈现出下降趋势,而不是一个稳定的状态。 而且,从程序日志中判断有线程处于hang住的状态,应该是被阻塞了。
编程随笔
2019-09-11
8.8K0
细说java系列之HashMap原理
下面集合HashMap的put(K key, V value)方法探究其实现原理。
编程随笔
2019-09-11
4760
MyBatis使用注意事项
MyBatis 3之后的SQL语句映射既支持注解也支持XML配置,他们各有优势和缺点,在实例项目中应该如何选择可以参考如下建议: 对于简单语句来说,注解使代码显得更加简洁,然而Java注解对于稍微复杂的语句就会力不从心并且会显得更加混乱。因此,如果你需要做很复杂的事情,那么最好使用XML来映射语句。当然,可以在项目中同时使用基于注解和基于XML配置2种形式的SQL语句映射,MyBatis是支持的。
编程随笔
2019-09-11
6670
UUID在Java中的实现与应用
UUID的全称为:Universally Unique IDentifier,也被称为GUID(Globally Unique IDentifier)。是一种由算法生成的唯一标识,它实质上是一个128位长的二进制整数。通常表示成32个16进制数组成的字符串,如:21EC2020-3AEA-1069-A2DD-08002B30309D。关于UUID标准的rfc定义详见:http://www.ietf.org/rfc/rfc4122.txt。 当然,GUID一词有时也专指微软对UUID标准的实现,用于Windows操作系统中。
编程随笔
2019-09-11
2.6K0
细说java系列之反射
反射机制允许在Java代码中获取被JVM加载的类信息,如:成员变量,方法,构造函数等。 在Java包java.lang.reflect下提供了获取类和对象反射信息的相关工具类和接口,如:Field,Method,Constructor等。
编程随笔
2019-09-11
3000
细说java系列之注解
Java从1.5版本之后开始支持注解,通过注解可以很方便地实现某些功能,使用得最普遍的就是Spring框架的注解,大大简化了Bean的配置。 注解仅仅是一种Java提供的工具,并不是一种编程模式。 单纯定义注解不能做任何事情,没有任何意义。除了注解之外,还需要编写注解处理器,通过注解处理器解析注解,完成特定功能。 注解作为Java的一个特性,它可以解决某些特定场景的问题,但并不是万能的,更不能被当做“银弹”。 在Java1.5+中自带了一些注解,这些注解被称为元注解。另外,还可以在应用程序中自定义注解。
编程随笔
2019-09-11
5420
mybatis字符串转义问题
如上代码所示,在执行查询操作时,为了能够与前端联动进行排序,直接在SQL参数中传递排序字段和排序规则。 但是,在调试时偶然发现,当传递的“orderBy”值为不存在的字段时,竟然不会报错!!! 经过进一步调试发现,实际上并不会按照预期的排序规则返回数据列表!!!
编程随笔
2019-09-11
2.4K0
maven常用插件
http://maven.apache.org/plugins/maven-assembly-plugin/
编程随笔
2019-09-11
1.5K0
学习go语言编程系列之定义变量
func main() { // 1. 定义变量名age,不初始化,使用对应类型的默认值 var age int fmt.Println("My age is", age) // 2. 给变量赋值 age = 29 fmt.Println("My age is", age) age = 50 fmt.Println("My age is", age) // 3. 定义变量时初始化值 var height int = 160 fmt.Println("My height is", height) // 4. 变量类型推断: 定义变量时不用明确指定变量类型,而是根据初始化值推断变量类型 var weight = 130 fmt.Println("My weight is", weight) // 5. 可以同时定义多个变量值 // 同时定义多个变量并初始化值 var myage, myheight int = 29, 160 fmt.Println("My age is", myage, ", and my height is", myheight)
编程随笔
2019-09-11
3410
谈谈java程序代码保护及license设计
理论上讲,不存在牢不可破的漏洞,只是时间和成本问题。通常我们认为的不可破解,说的是破解需要难以接受的时间和成本。 对于java程序来说,class文件很容易被反编译,所以理论上而言,对java程序做license限制,无法真正起到保护软件被盗窃的作用。 但是,如果增加被反编译的成本,或者增加被反编译后能读懂源码的成本,也能从一定程度上起到保护软件被盗用的目的。 针对不同的应用程序,可以使用不同的方法。 1. Android应用程序 由于Android应用程序时需要下载才能被安装的,所以用户很容易可以得到程序包,且可以进行反编译。 所以只能通过增加被反编译后读懂源码的成本来达到保护程序被盗用的目的,通常的做法是进行代码混淆。 2. Web应用程序 (1)自己部署 Web应用程序通常部署在服务器端,用户能直接获取到程序源码的风险相对较小,所以就可以避免被反编译。 (2)交付给用户部署 如果想限制软件系统的功能或者使用时间,可以通过license授权的方式实现。但是,license加密和解密验证都必须在服务器端。 ########### 理论上没有任何意义,只要web程序提供给用户,同样可以被反编译绕开license验证过程。########### ########### 如果一定要做license限制,一定要对license解密代码进行混淆处理。############ 3. 关于RSA加密 公钥加密数据长度最大只能为117位,私钥加密用于数字签名,公钥验证。 通常,不直接使用RSA加密,特别是加密内容很大的时候。 使用RSA公钥加密AES秘钥,再通过AES加密数据。 【参考】 https://www.guardsquare.com/en http://www.cnblogs.com/cr330326/p/5534915.html ProGuard代码混淆技术详解 http://blog.csdn.net/ljd2038/article/details/51308768 ProGuard详解 http://oma1989.iteye.com/blog/1539712 Java给软件添加License http://infinite.iteye.com/blog/238064 利用license机制来保护Java软件产品的安全 http://jasongreen.iteye.com/blog/60692 也论java加壳 http://jboss-javassist.github.io/javassist/ Javassist http://www.cnblogs.com/duanxz/archive/2012/12/28/2837197.html java中使用公钥加密私钥解密原理实现license控制 http://ju.outofmemory.cn/entry/98116 使用License3j实现简单的License验证
编程随笔
2019-09-11
4.5K0
细说tomcat之类加载器
官网:http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html Java类加载与Tomcat类加载器层级关系对比
编程随笔
2019-09-11
9760
在java1.8下使用jetty报错java.lang.CharSequence cannot be resolved
环境: JDK: 1.8 Jetty: jetty6,jetty7(在eclipse中使用run-jetty-run插件)
编程随笔
2019-09-11
5630
mvn项目压缩打包
通常情况下,maven打包结果为jar或war包。 如果需要一并打包配置文件等参数,通过resources配置指定需要打包的文件参数,如下示例:
编程随笔
2019-09-11
8370
多级部门查询性能问题解决方案
其实,涉及部门层级关系的问题在很多情形下都会遇到,特别是针对toB的应用开发场景。 但奇葩的是,在我们的项目里头,项目经理在前期需求调研时,预估的用户部门最大数为1k,于是相关的开发同事就按照最大数1k*4=4k的目标进行了设计实现,而真正交付到用户生产环境时同步的数据是1w。 What?也就是说,即使之前已经按照最大预估数进行了4倍数放大设计,但是现在是10倍。于是,各种问题接踵而至。 导致该问题出现的原因主要有一下几点:
编程随笔
2019-06-27
1.4K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档