- 浏览: 53234 次
- 性别:
- 来自: 上海
最新评论
文章列表
在mongo3.2以后才可以设置read concern,write concern是很早就有了。这两个concern到底有什么用呢,或者说用默认的预设是不是就可以了。用默认的基本可以满足90以上的场景,另外10就是很严格的场景,比如说:要求数据严格强一 ...
在mongo的驱动中,默认是primary读,primary写。在最近一次项目中,把readPreference改成secondary,也就是设置成从secondary读,这样就出问题了,最新写入的数据,查询不到,由于副本集同步需要时间,只好改成默认的primary读,这样就没问题了。要改成secondary有个前提就是,基本不会怎么写入数据,或者读的数据跟刚写的数据没有什么关系,但是这个项目,是要检查是不是刚插入过。
Write Concern:
Requests acknowledgment that the write operation has propagated ...
在mongodb中,一般放在内网服务器上,并不需要开启权限认证,但是为了数据安全,有时候也可能用到,
这里记录下开启权限的一些关键点。
1.创建一个admin账号,这一步是为了开启权限认证以后能够连上mongo, ...
在spring4.x中,全面支持注解开发,可以零xml配置,确实开发方便了很多。其中有两个注解@Bean和@Configuration两个注解,经常会被用到。@Configuration用来标注配置类,就相当于以前写xml配置bean时候,所有bean标签都在xml中写,现在bean全部使用@Bean在@Configuration类中标注。简单来说@Bean就是往IOC容器中放一个bean,@Configuration就是替换xml配置文件。
但是@Bean并不一定要放在@Configuration标注得类中,只要是spring管理的bean中,使用@Bean标注出来的bea ...
自定义异步任务执行的Executor,默认用的是SimpleAsyncTaskExecutor
// AsyncExecutionInterceptor
@Override
public Object invoke(final MethodInvocation invocation) throws Throwable {
Class<?> targetClass = (invocation.getThis() != null ? AopUtils.getTargetClass(invocation.getThis()) : null);
Metho ...
在java中,一般都会说基本类型的比较相等用==这个比较符;对于引用类型的比较相等一般用equals方法,自定义的类型需要实现equals方法,如果用==则会比较两个对象的地址是否一样。
今天有点时间,就写了个测试,记录==到底是怎么样的。以下是demo代码:
public class Typea {
public static void main(String[] args) {
Integer x = 1;
Integer y = 1;
System.out.println(x == y);// 1. true
I ...
1 spring-boot + shiro 自定义过滤器 不按filterChain的规则执行
版本:spring-boot 1.5.15.RELEASE + shiro 1.4.0
当自定义filter以后,把自定义的filter配置到shiro的filterChain以后,发生了超出预期的效果,本来shiro中filterChain的的原则是从上往下匹配,当有一个规则匹配以后,就不会继续匹配filterChain剩下的规则,也就是filterChain的机制是短路的,只要找到一个filter过滤规则满足就返回。
当与springboot集成以后,自定义的filte ...
在说rpc之前,先简单说一下java的动态代理。jdk提供了基于接口的动态代理,只需要调用Proxy.newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h),需要传入三个参数,第一个是类加载器,第二个被代理的接口,第三个是InvocationHandler,最关键就在于InvocationHandler接口的invoke方法怎么去实现,当通过代理类调用其实现的接口的某个方法时,内部就是调用invoke方法。
比如定义了一个接口HelloService
packag ...
之前spring是用xml配置,现在可以零xml使用,完全代码的方式来使用的spring的功能。实际上,注解并不重要,xml配置也不重要,重要的是使用spring的ioc和aop提供的功能。现在提供了注解的方式来使用spring的核心功能,那简直不要太舒服了。
1.先建项目导入spring相关依赖
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1 ...
dubbo需要一个注册中心,用的是zookeeper。集成spring-boot是为了方便使用注解开发。
1. 安装zoopkker
hadoop01:2181, hadoop02:2181, hadodp03:2181
2. 编写dubbo公共接口
HelloService
package com.dubbo.service;
import com.dubbo.model.User;
public interface HelloService {
String sayHello(Stri ...
新版的tensorflow已经支持windows了,不过python版本不能用2.x, 要用3.x,好像最新的tensorflow支持3.5和3.6这两个python版本,其他3.x的python版本没有测试过。当然电脑要有nvidia的显卡才行,我的电脑比较差,带的是gtx 950,跑起来例子比cpu还是快不少。下面是具体的安装步骤:
1. 安装最新版的tensorflow-gpu
pip install tf-nightly-gpu
注意:这个可能会比较慢,最好配置一下国内的pip源,我用的是清华大学的pip源,具体配置参考:
ht ...
在word2vec里面是使用一个简单的两层神经网络来训练的,一个隐层和一个softmax层。里面就有两组权值要训练,但是最后使用的时候只要只要第一组权值,也就是隐层的权值。
输入是一个one-hot的向量,隐层的权值matrix实际上就是每个词的向量,每一行代表一个词的向量,这样,一个ont-hot乘这个权值矩阵的时候,就相当于取了matrix的一行。
输出是一个softmax层,用来表示词典中每个词作为上下文的概率,目标是真正在上下文词出现的那个词的概率的位置接近1,这个位置就是这个上下文词的one-hot为1的那个位置。
举个例子:i love ...
numpy
1. zeros
用来创建元素全为0的数组,数组的维度根据参数来。
Examples:
>>> np.zeros(5)
array([ 0., 0., 0., 0., 0.])
>>> np.zeros((5,), dtype=np.int)
array([0, 0, 0, 0, 0])
>>> np.zeros((2, 1))
# 这里表示创建一个2维数组(也就是矩阵),其中包含2行1列
array([[ 0.],
[ 0.]])
>&g ...
以前自己写网站玩的时候,真是一点都不考虑安全性,虽然也象征性的md5了一下,然后登陆了也是拿出这个md5值和输入的密码进行md5以后比较,这个方法没什么大问题,除了说md5可能会有冲突之类的情况。但是呢,当时有一个最严重的问题,就是把密码明文也存储了,虽然这个明文对于用户来说永远也使用不到,用户登陆也是和md5以后的密码比较。我也很清楚不应该存储明文的,但是想着存了也无所谓,也不浪费什么空间,完全是在自娱自乐。
前段时间,收到某公司的面试电话,面试官问我,以前是怎么存储用户密码的,我就说原密码加上一个盐值一起hash存储起来的,当然不能说还存储了明文,不然肯定会被喷。但是呢 ...
在mongodb中有多种方式来存储属性结构的数据。
1 通过子文档关联父文档
{
"_id": 1,
"name": "子节点",
"parents": ["父节点1","父节点2"]
}
2 通过父节点关联子节点
{
"_id": 1,
"name": "父节点",
"childs": ["子节点1","子 ...