我正处于设计基于Azure的应用程序的早期阶段.考虑到我可能期望的需求变化,吸引我进入Azure的一个原因是可扩展性.因此,我试图保持松散耦合,以便我可以在需要时添加实例.
我在构建Azure应用程序时看到的建议包括将Web角色逻辑保持在最低限度,并在工作者角色中完成处理,使用队列进行通信以及某些后端存储(如SQL Azure或Azure表).这对我来说似乎是一个好主意,因为我可以毫无问题地扩展应用程序的任一部分或两部分.但是我很好奇是否有任何最佳实践(或者如果有人有任何经验),最好让网络角色直接与数据存储对话而不是通过队列发送数据?
我正在考虑从web角色进行简单插入的情况 - 我可以将其设置为消息,将其发送到队列中,并让工作者角色拾取并执行插入,它似乎很多双重处理.但是我也很欣赏,从长远来看,这可能是更好的情况,万一web角色不堪重负或者插件需要更复杂的逻辑.
我意识到这可能是一个案例,答案是"它完全取决于情况,检查你的绩效指标" - 但如果有人有任何想法,我会非常感激!
当用户单击网页上的列标题时,我试图在Spring MVC应用程序中支持不区分大小写的排序。呈现页面时,Thymeleaf扩展名将创建一个锚点,这href是当前URL,带有受以下参数支持的参数Pageable:即page, size and sort。
该sort=propertyName,ASC格式可以正常工作,但是我无法从URL得知如何说排序不区分大小写。我可以很容易地用代码完成它,但是标准的Pageable支持似乎并不支持它。
经过一番调试后,似乎标准框架org.springframework.data.web.SortHandlerMethodArgumentResolver不支持org.springframework.data.domain.Sort.Order.ignoreCase。
我对此感到有些困惑,并且想知道为什么有充分的理由吗?
我可以考虑创建自己的SortHandlerMethodArgumentResolver类,并使其解析ASCI|DESCI(表示不区分大小写)和ASCS|DESCS(表示区分大小写)并生成适当的Sort对象,但是这给我带来了很多工作和严肃的“代码”闻”。
我不能成为第一个偶然发现此问题的人。有人有建议吗?
我有一个程序,它总结了两个数组的共同元素.为此,我使用了两个for循环,如果我有三个,那么我可以使用三个for循环.但是如何总结运行时n中n个数组的公共元素.
我不知道如何在运行时更改循环次数,还是有任何其他相关概念?
这是我试图总结两个数组的代码:
import java.util.Scanner;
public class Sample {
public static void main(String... args)
{
Scanner sc=new Scanner(System.in);
int arr1[]={1,2,3,4,5},arr2[]={4,5,6,7,8},sum=0;
for (int i=0;i<arr1.length;i++)
{
for (int j=0;j<arr2.length;j++)
{
if (arr1[i]==arr2[j])
{
sum+=(arr1[i]);
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我的公司目前正在构建一个用 Angular 2 编写的非常大的 SPA,我们在内存消耗方面存在一些问题。
在我的测试过程中,我已经注释掉了应用程序中的所有代码,只留下主模块和两个完全空的组件。我们使用 Webpack 进行转译。
在 Chrome 中分析时,内存消耗似乎相当一致,但是当我在 IE11 中执行相同操作时(客户端将主要使用此浏览器),即使刷新浏览器窗口,内存似乎也在不断增加。
以下是 IE 分析器和任务管理器的两个屏幕截图。每个尖峰表示浏览器刷新。另请注意,拍摄堆快照显示我的网站的恒定值为 3.16Mb,因此没有任何问题。
这个问题在完整版中变得更糟,经过几个小时的工作,浏览器可以达到 1Gb 以上。
任务管理器:
IE11 中不断增加的内存是否是一个已知问题?如果您想了解有关我的实施的更多信息,请询问。
我只是想在Angular2中运行一个简单的index.html页面,但它在console中的zone.js中显示错误:
Unhandled Promise rejection: No ErrorHandler. Is platform module (BrowserModule) included? ; Zone: <root> ; Task: Promise.then ; Value: Error: No ErrorHandler. Is platform module (BrowserModule) included?
at eval (application_ref.ts:364)
at ZoneDelegate.invoke (zone.js:391)
at Object.onInvoke (ng_zone.ts:296)
at ZoneDelegate.invoke (zone.js:390)
at Zone.run (zone.js:141)
at NgZone.run (ng_zone.ts:153)
at PlatformRef_._bootstrapModuleFactoryWithZone (application_ref.ts:359)
at eval (application_ref.ts:330)
at ZoneDelegate.invoke (zone.js:391)
at Zone.run (zone.js:141) Error: No ErrorHandler. Is platform module (BrowserModule) included?
at eval (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:4531:23)
at ZoneDelegate.invoke (http://localhost:3000/node_modules/zone.js/dist/zone.js:391:26)
at Object.onInvoke (http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:3922:33)
at ZoneDelegate.invoke (http://localhost:3000/node_modules/zone.js/dist/zone.js:390:32)
at …Run Code Online (Sandbox Code Playgroud) 我无法使用Docker-compose设置Postgres的密码。Postgres正在加载而没有密码,并且使用默认用户名“ postgres”,似乎未应用以下环境变量。以下是我的docker-compose.yml文件的数据库服务:(版本3)
db:
image: postgres
container_name: postgres
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
POSTGRES_DB: db
restart: unless-stopped
volumes:
- ./postgres-data:/var/lib/postgresql/data
ports:
- "5432:5432"
Run Code Online (Sandbox Code Playgroud)
请注意,我也尝试使用了“ -POSTGRES_USER =”,但没有用
另外,我删除了所有旧的容器/卷。
任何的想法?
我有一个Kubernetes部署,它基于anapsix/alpine-java映像部署Java应用程序.容器中没有其他任何东西可以用于Java应用程序和容器开销.
我希望最大化Java进程在docker容器中可以使用的内存量,并最小化将保留但从未使用过的ram数量.
例如,我有:
如何安全地最大化在两个节点上运行的pod的数量,而由于内存限制,从不让Kubernetes终止我的POD?
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 1
template:
metadata:
labels:
app: my-deployment
spec:
containers:
- name: my-deployment
image: myreg:5000/my-deployment:0.0.1-SNAPSHOT
ports:
- containerPort: 8080
name: http
resources:
requests:
memory: 1024Mi
limits:
memory: 1024Mi
Run Code Online (Sandbox Code Playgroud)
Java 8 update 131+有一个标志-XX:+ UseCGroupMemoryLimitForHeap来使用来自Kubernetes部署的Docker限制.
我的Docker实验向我展示了Kubernetes正在发生的事情
如果我在Docker中运行以下代码:
docker run -m 1024m anapsix/alpine-java:8_server-jre_unlimited java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XshowSettings:vm -version
Run Code Online (Sandbox Code Playgroud)
我明白了:
VM settings:
Max. Heap Size (Estimated): 228.00M
Run Code Online (Sandbox Code Playgroud)
这个值很低是因为Java默认情况下将-XX:MaxRAMFraction设置为4并且我得到了大约1/4的ram分配...
如果我在Docker中使用-XX:MaxRAMFraction = 2运行相同的命令:
docker run -m 1024m anapsix/alpine-java:8_server-jre_unlimited java -XX:+UnlockExperimentalVMOptions …Run Code Online (Sandbox Code Playgroud) 我有这个curl命令
curl -X GET "https://api.spotify.com/v1/search?q=Carlos+Vives&type=artist" -H "Accept: application/json" -H "Authorization: Bearer <My API Key>"
Run Code Online (Sandbox Code Playgroud)
我如何运行它,并从 Android (Java) 获取 JSON 响应?
我正在尝试在具有一个主节点和两个工作节点的K8s集群上创建部署。集群在3个AWS EC2实例上运行。我一直在使用这种环境玩Kubernetes。三天后,我已经开始看到所有豆荚状态更改为ContainerCreating从Running。只有计划在主服务器上的Pod显示为Running。在工作程序节点上运行的Pod显示为ContainerCreating。当我运行时kubectl describe pod <podname>,它在事件中显示以下内容
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 34s default-scheduler Successfully assigned nginx-8586cf59-5h2dp to ip-172-31-20-57
Normal SuccessfulMountVolume 34s kubelet, ip-172-31-20-57 MountVolume.SetUp succeeded for volume "default-token-wz7rs"
Warning FailedCreatePodSandBox 4s kubelet, ip-172-31-20-57 Failed create pod sandbox.
Normal SandboxChanged 3s kubelet, ip-172-31-20-57 Pod sandbox changed, it will be killed and re-created.
Run Code Online (Sandbox Code Playgroud)
这个错误现在困扰着我。我试图在网上搜索有关的错误,但是我没有得到任何具体的信息。我在包含主节点和工作节点的群集上进行了kubeadm重置,然后再次启动了群集。节点状态显示为就绪。但是,每当尝试使用以下命令创建部署时,我都会再次遇到相同的问题:
kubectl run nginx --image=nginx --replicas=2
Run Code Online (Sandbox Code Playgroud) 我知道我不能在HashMap中有两个相等的键(通过equals() - 方法).如果我尝试使用已存在的密钥向HashMap添加键值对,则旧值将被新值替换.
但是如果我将现有密钥更改为等于另一个现有密钥怎么办?
在这种情况下,map.get()方法将如何表现(应用于其中一个相等的键)?
下面非常简单的例子.
public class Person{
private int age;
private String name;
public Person(int a, String n){
age = a;
name = n;
}
public void setAge(int a){ age = a; }
public int getAge(){return age; }
public String getName() {return name; }
@Override
public boolean equals(Object o){
if(!(o instanceof Person)){return false;}
Person p = (Person) o;
return ((p.getName().equals(this.getName())) && (p.getAge() == this.getAge()));
}
@Override
public int hashCode(){return age;}
}
public class MainClass{
public static void main(String[]args){ …Run Code Online (Sandbox Code Playgroud) java ×4
angular ×2
kubernetes ×2
algorithm ×1
android ×1
arrays ×1
azure ×1
azure-queues ×1
curl ×1
docker ×1
equals ×1
hashmap ×1
java-8 ×1
javascript ×1
memory ×1
memory-leaks ×1
postgresql ×1
queue ×1
spring ×1
spring-mvc ×1
yaml ×1